Android关于微信支付调用客户端无法启动汇总

2017-05-08  本文已影响794人  整个夏天

微信官方问题原因汇总

首先说明一下更改微信平台上的签名信息是不用等微信的服务器更新的,一般情况修改后既可以使用.

Q:调用wxapi.sendReq接口,返回true,但微信客户端并未启动,请检查以下几项:

  1. 微信是否安装
  2. 调用时的Apk包名和签名是否与开放平台填写的一致,签名请使用该工具:点击下载,常发生在安装了debug版本又安装release版本情况,确定包名签名后卸载微信重装或者清除微信数据再做测试
  3. 检查发送时的缩略图大小是否超过32k
  4. 能够调起微信到选择好友列表,但是点击发送后无响应,请检查proguard配置是否对微信SDK代码进行了混淆,建议不要对SDK对混淆,参考以下proguard配置:

原文地址:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318060&token=563167eae68607b283be5826a582d502c4446aa9&lang=zh_CN

混淆配置

-keep class com.tencent.mm.opensdk.** {

   *;

}

-keep class com.tencent.wxop.** {

   *;

}

-keep class com.tencent.mm.sdk.** {

   *;

}

Android Studio打包问题

如果你的项目debug签名设置成正式包签名的话,那么需要加上这个v2SigningEnabled配置,否则debug出来的包签名会出现问题,导致调用不起来微信客户端.

signingConfigs {
        release {
            keyAlias ''
            keyPassword ''
            storePassword ''
            storeFile file('')
            v2SigningEnabled false
        }

        debug {
            keyAlias 'smrh'
            keyPassword 'smrh1992'
            storePassword 'smrh1992'
            storeFile file('/Users/whbt_mac/git/srmh/key/smrh.jks')
            v2SigningEnabled false
        }
    }

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }

        debug {
            signingConfig signingConfigs.release
        }

    }

在正式打包的时候也要注意这个问题

图片.png

关于v2SigningEnabled的官方文档:https://developer.android.google.cn/about/versions/nougat/android-7.0.html#apk_signature_v2

图片.png

最后记录一下微信支付回调无法收到的问题

由于项目是从之前的工程中抽出来的作为新项目的开发基础,这样就不会写很多的基础代码,里面已经有了友盟分享等一系列的功能,所以就有了WXEntryActivity.java这个类,这个是微信分享回调的类,误以为微信支付回调用的就是这个类,所以支付回调就一直不成功,微信支付回调的类是WXPayEntryActivity.java,容易看错,特此记一下.
还有就是微信回调类的位置,这个很简单不会怎么出错,当你的包名是com.stone.test的时候,那么微信回调的包名就是com.stone.test.wxapi,回调的类就放在这个包名下就行了.

上一篇下一篇

猜你喜欢

热点阅读