接入第三方登录报错
发布于 8 年前 作者 mingxiao 1171 次浏览 来自 问答

我在接入微信第三方登录时发现如下问题,望给出建议:

按照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模拟器,该模拟器上已经安装好了微信应用。

回到顶部