mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 10:38:42 +08:00 
			
		
		
		
	🐛 #1604 修复微信开放平台帐号管理相关接口,使用指定appId的access_token
* fix:修改微信开放平台帐号管理相关接口,使用指定appId的access_token,非开放平台自身的component_access_token
This commit is contained in:
		| @ -394,5 +394,17 @@ public class WxConsts { | ||||
|     public static final String OPERATORDEFAULT = "DEFAULT"; | ||||
|   } | ||||
|  | ||||
|  | ||||
|   /** | ||||
|    * appId 类型 | ||||
|    */ | ||||
|   public static class AppIdType { | ||||
|     /** | ||||
|      * 公众号appId类型 | ||||
|      */ | ||||
|     public static final String MP_TYPE = "mp"; | ||||
|     /** | ||||
|      * 小程序appId类型 | ||||
|      */ | ||||
|     public static final String MINI_TYPE = "mini"; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -416,42 +416,46 @@ public interface WxOpenComponentService { | ||||
|    * https://api.weixin.qq.com/cgi-bin/open/create | ||||
|    * | ||||
|    * @param appId     公众号/小程序的appId | ||||
|    * @param appIdType appId类型   me.chanjar.weixin.common.api.WxConsts.AppIdType   mp-公众号  mini-小程序 | ||||
|    * @return . wx open create result | ||||
|    * @throws WxErrorException . | ||||
|    */ | ||||
|   WxOpenCreateResult createOpenAccount(String appId) throws WxErrorException; | ||||
|   WxOpenCreateResult createOpenAccount(String appId, String appIdType) throws WxErrorException; | ||||
|  | ||||
|   /** | ||||
|    * https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/account/bind.html | ||||
|    * 将公众号/小程序绑定到开放平台帐号下 | ||||
|    * | ||||
|    * @param appId     公众号/小程序的appId | ||||
|    * @param appIdType appId类型   me.chanjar.weixin.common.api.WxConsts.AppIdType   mp-公众号  mini-小程序 | ||||
|    * @param openAppid 开放平台帐号 appid,由创建开发平台帐号接口返回 | ||||
|    * @return the boolean | ||||
|    * @throws WxErrorException the wx error exception | ||||
|    */ | ||||
|   Boolean bindOpenAccount(String appId, String openAppid) throws WxErrorException; | ||||
|   Boolean bindOpenAccount(String appId, String appIdType, String openAppid) throws WxErrorException; | ||||
|  | ||||
|   /** | ||||
|    * https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/account/unbind.html | ||||
|    * 将公众号/小程序从开放平台帐号下解绑 | ||||
|    * | ||||
|    * @param appId     公众号/小程序的appId | ||||
|    * @param appIdType appId类型   me.chanjar.weixin.common.api.WxConsts.AppIdType   mp-公众号  mini-小程序 | ||||
|    * @param openAppid 开放平台帐号 appid,由创建开发平台帐号接口返回 | ||||
|    * @return the boolean | ||||
|    * @throws WxErrorException the wx error exception | ||||
|    */ | ||||
|   Boolean unbindOpenAccount(String appId, String openAppid) throws WxErrorException; | ||||
|   Boolean unbindOpenAccount(String appId, String appIdType, String openAppid) throws WxErrorException; | ||||
|  | ||||
|   /** | ||||
|    * https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/account/get.html | ||||
|    * 获取公众号/小程序所绑定的开放平台帐号 | ||||
|    * | ||||
|    * @param appId     公众号/小程序的appId | ||||
|    * @param appIdType appId类型   me.chanjar.weixin.common.api.WxConsts.AppIdType   mp-公众号  mini-小程序 | ||||
|    * @return 开放平台帐号 appid,由创建开发平台帐号接口返回 | ||||
|    * @throws WxErrorException the wx error exception | ||||
|    */ | ||||
|   WxOpenGetResult getOpenAccount(String appId) throws WxErrorException; | ||||
|   WxOpenGetResult getOpenAccount(String appId, String appIdType) throws WxErrorException; | ||||
|  | ||||
|   /** | ||||
|    * https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=21538208049W8uwq&token=&lang=zh_CN | ||||
|  | ||||
| @ -5,6 +5,7 @@ import com.google.gson.JsonObject; | ||||
| import com.google.gson.reflect.TypeToken; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.extern.slf4j.Slf4j; | ||||
| import me.chanjar.weixin.common.api.WxConsts; | ||||
| import me.chanjar.weixin.common.error.WxError; | ||||
| import me.chanjar.weixin.common.error.WxErrorException; | ||||
| import me.chanjar.weixin.common.util.crypto.SHA1; | ||||
| @ -474,47 +475,71 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService { | ||||
|     post(DELETE_TEMPLATE_URL, param.toString(), "access_token"); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * 微信开放平台帐号管理统一请求入口 | ||||
|    * | ||||
|    * @param appId      操作appId 小程序/公众号 | ||||
|    * @param appIdType  操作类型   小程序/公众号 | ||||
|    * @param requestUrl 请求地址 | ||||
|    * @param param      请求参数 | ||||
|    * @return 请求结果 | ||||
|    * @throws WxErrorException | ||||
|    */ | ||||
|   private String openAccountServicePost(String appId, String appIdType, String requestUrl, JsonObject param) throws WxErrorException { | ||||
|     String result = ""; | ||||
|     switch (appIdType) { | ||||
|       case WxConsts.AppIdType.MP_TYPE: | ||||
|         WxMpService wxMpService = this.getWxMpServiceByAppid(appId); | ||||
|         result = wxMpService.post(requestUrl, param.toString()); | ||||
|         return result; | ||||
|       case WxConsts.AppIdType.MINI_TYPE: | ||||
|         WxOpenMaService maService = this.getWxMaServiceByAppid(appId); | ||||
|         result = maService.post(requestUrl, param.toString()); | ||||
|         return result; | ||||
|       default: | ||||
|         throw new WxErrorException(WxError.builder().errorCode(-1).errorMsg("appIdType类型异常").build()); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   @Override | ||||
|   public WxOpenCreateResult createOpenAccount(String appId) throws WxErrorException { | ||||
|   public WxOpenCreateResult createOpenAccount(String appId, String appIdType) throws WxErrorException { | ||||
|     JsonObject param = new JsonObject(); | ||||
|     param.addProperty("appid", appId); | ||||
|  | ||||
|     String json = post(CREATE_OPEN_URL, param.toString(), "access_token"); | ||||
|     String json = openAccountServicePost(appId, appIdType, CREATE_OPEN_URL, param); | ||||
|  | ||||
|     return WxOpenCreateResult.fromJson(json); | ||||
|   } | ||||
|  | ||||
|  | ||||
|   @Override | ||||
|   public Boolean bindOpenAccount(String appId, String openAppid) throws WxErrorException { | ||||
|   public Boolean bindOpenAccount(String appId, String appIdType, String openAppid) throws WxErrorException { | ||||
|     JsonObject param = new JsonObject(); | ||||
|     param.addProperty("appid", appId); | ||||
|     param.addProperty("open_appid", openAppid); | ||||
|  | ||||
|     String json = post(BIND_OPEN_URL, param.toString(), "access_token"); | ||||
|  | ||||
|     String json = openAccountServicePost(appId, appIdType, BIND_OPEN_URL, param); | ||||
|     return WxOpenResult.fromJson(json).isSuccess(); | ||||
|   } | ||||
|  | ||||
|  | ||||
|   @Override | ||||
|   public Boolean unbindOpenAccount(String appId, String openAppid) throws WxErrorException { | ||||
|   public Boolean unbindOpenAccount(String appId, String appIdType, String openAppid) throws WxErrorException { | ||||
|     JsonObject param = new JsonObject(); | ||||
|     param.addProperty("appid", appId); | ||||
|     param.addProperty("open_appid", openAppid); | ||||
|  | ||||
|     String json = post(UNBIND_OPEN_URL, param.toString(), "access_token"); | ||||
|  | ||||
|     String json = openAccountServicePost(appId, appIdType, UNBIND_OPEN_URL, param); | ||||
|     return WxOpenResult.fromJson(json).isSuccess(); | ||||
|   } | ||||
|  | ||||
|  | ||||
|   @Override | ||||
|   public WxOpenGetResult getOpenAccount(String appId) throws WxErrorException { | ||||
|   public WxOpenGetResult getOpenAccount(String appId, String appIdType) throws WxErrorException { | ||||
|     JsonObject param = new JsonObject(); | ||||
|     param.addProperty("appid", appId); | ||||
|  | ||||
|     String json = post(GET_OPEN_URL, param.toString(), "access_token"); | ||||
|     String json = openAccountServicePost(appId, appIdType, GET_OPEN_URL, param); | ||||
|     return WxOpenGetResult.fromJson(json); | ||||
|   } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 whhya
					whhya