我在接入微信第三方登录时发现如下问题,望给出建议:
按照Android接入指南(https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html)
和移动应用微信登录开发指南(https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.html)中的提示,我这边的代码如下:
public class WeiXinLoginHelper extends BaseLoginHelper {
private IWXAPI mApi;
public WeiXinLoginHelper(Activity activity) {
super(activity);
mApi = WXAPIFactory.createWXAPI(activity, APPConstants.WEI_XIN_APP_ID,true);
mApi.registerApp(APPConstants.WEI_XIN_APP_ID);
}
public void startLogin(){
// send oauth request
final SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "none";
mApi.sendReq(req);
}
}
当我调用startLogin方法时,返回如下:
E/MicroMsg.SDK.WXApiImplV10: register app failed for wechat app signature check failed
E/MicroMsg.SDK.WXApiImplV10: sendReq failed for wechat app signature check failed
通过网上查询,即便使用如下语句错误同样不变:
mApi = WXAPIFactory.createWXAPI(activity, null);
mApi.registerApp(APPConstants.WEI_XIN_APP_ID);
看上去像是签名校验不通过导致的,无法拉起微信登录页面,我尝试使用官方提供的Demo(WeChatOpenSdkSample),发现createWXAPI方法的最后一个字段是false,这样可以拉起微信登录界面,当然将我的代码修改为false也可以拉起;而我将官方Demo此处修改为true,同样不能拉起登录页面,我想明白checkSignature这个字段到底是做什么用的,开发中使用true还是false,以及使用true怎样才能正常工作,我使用的是Android模拟器,该模拟器上已经安装好了微信应用。