网上的相关教程 已经非常多了,官网的资料非常的价值,同时推荐1个博友的链接。
https://blog.csdn.net/weixin_34032779/article/details/89545459
按上面的资料,已经实现APP从服务器得到正确prepay_id,在APP拉起微信时,总是返回-1。
这是从微信支付技术助手找到的解决方案,
1 开放平台应用签名得去掉冒号,要小写
2 android studio包签名会变化
3 改完应用签名要过一段时间才生效
4 微信退出重启一下
找到的第1个有误的地方 :
根据第1条,在Android Studio中的命令查看到的APP符合,英文字母是大写,并且使用冒号隔开,在提交申请时也是这样提交的,这是有问题的,参考第一条,同时不知道自已签名的同学,使用这个APP进行查看,有一点不好的地方是,查看到的签名,无法直接复制。
签名工具下载地址https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
找到的第2个有误的地方:
根据第2条,在调试时Android Studio打包APP是使用默认的签名,与我们的最终签名不符,针对这个问题,有2种解决方案
1.把APP打包成最终发布的APP在手机上安装,再进行支付操作。这是其中的一个方法,但不推荐,这很不方便于调试。我们使用第2种。
2.在build.gradle中添加如下代码,手动指定打包时使用的签名文件,在android标签中添加如下代码:
android{
signingConfigs {
debug {
storeFile file('签名文件路径.jks')
storePassword '********'
keyAlias = 'ABCD'
keyPassword '********'
}
release {
storeFile file('签名文件路径.jks')
storePassword '********'
keyAlias = 'ABCD'
keyPassword '********'
}
}
}
解决了这两个问题,这样就可以正常调起微信,并成功支付了。