在接入微信SDK的时候,碰到提示 sendReq failed for wechat app signature check failed 问题的解决办法。

问题描述

在接入微信SDK的时候

1
2
3
4
5
6
7
8
  String appId = Constants.APP_ID; // 填移动应用(App)的 AppId,非小程序的 AppID
  IWXAPI api = WXAPIFactory.createWXAPI(context, appId);

  WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
  req.userName = miniAppId; // 填小程序原始id
  req.path = path;                  ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
  req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
  api.sendReq(req);

执行代码后,手机没有任何反应,查看log后找到 sendReq failed for wechat app signature check failed 的错误日志。

解决办法

  1. 检查应用签名是否和在微信后台登记的签名MD5一致(一般都是由于debug模式使用了debug签名,和release签名不一致导致的)
  2. 如果签名检查正确无误,那么查看系统android版本,android 11 及以上版本的手机需要在androidManifest.xml添加如下配置:
    1
    2
    3
    
     <queries>
         <package android:name="com.tencent.mm" />
     </queries>