问题描述:
原来的小程序都绑定在微信开放平台的第一个第三方平台下,现第一个第三方平台的小程序绑定个数已达上限,故在同一个开放平台下创建了第二个第三方平台.如何改变代码使得绑定第一个开放平台的小程序任然能正常运作,然后第二个开放平台绑定的小程序也能授权运转?
环境背景:第三方平台绑定的小程序都是不同主体下的
尝试方法:将代码中的绑定的第三方平台的appsecret和appid改为第二个第三方平台,结果微信返回预授权码不合法,微信授权回调接口提示appid不合法
### 相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
//此为获取预授权码接口
public static void acquireComponentAccessToken() {
String appid = PROP.get(“wx.open.appid”);
String appsecret = PROP.get(“wx.open.appsecret”);
String componentVerifyTicket = DecryptedComponentVerifyTicket.getInstance().getComponentVerifyTicket();
Map<String, String> params = new HashMap<>();
params.put(“component_appid”, appid);
params.put(“component_appsecret”, appsecret);
params.put(“component_verify_ticket”, componentVerifyTicket);
String json = null;
try {
json = om.writeValueAsString(params);
} catch (JsonProcessingException e) {}
String resp = HttpKit.post(ACQUIRE_COMPONENT_ACCESS_TOKEN_URL, json);
// LOG.info("(WXOPEN) JSON: " + json);
LOG.info("(WXOPEN) ACQUIRE_COMPONENT_ACCESS_TOKEN: " + resp);
Map<String, Object> map = null;
try {
map = om.readValue(resp, Map.class);
} catch (IOException e) {}
ComponentAccessToken componentAccessToken = ComponentAccessToken.getInstance();
componentAccessToken.setComponentAccessToken((String) map.get(“component_access_token”));
componentAccessToken.setExpiresIn((Integer) map.get(“expires_in”));
componentAccessToken.setRefleshTime(new Date());
}
//此为微信回调接口
public void index() {
log.info(“notify请求”);
// 获取component_verify_ticket推送,解密后存入单例对象
EncryptedComponentVerifyTicket ticket = new EncryptedComponentVerifyTicket();
wirePropertyFromRequest(ticket);
// log.info("(WXOPEN) ticket: " + ticket);
try {
AuthorizerAccessTokenUtil.decrypt(ticket);
} catch (AesException e) {
log.error(“解密错误:” + e.getMessage());
}
// 根据是否失效,来向微信请求或从单例取得component_access_token
if (ComponentAccessToken.isExpired()) {
AuthorizerAccessTokenUtil.acquireComponentAccessToken();
}
log.info(“刷新授权”);
// 扫描`wx_miniapp_auth`表,将10min后失效的数据刷新授权
List<WXMiniappAuth> miniappAuthList = WXMiniappAuth.dao.list();
AuthorizerAccessTokenUtil.refreshAuthorizerAccessToken(miniappAuthList);
renderText(“success”);
}
期待结果:第二个开放平台也能授权成功新的小程序
错误信息:微信返回预授权码不合法,微信授权回调接口提示appid不合法