【Android开发 】微信支付不成功的几个原因

【Android开发 】微信支付不成功的几个原因_第1张图片

【Android开发 】微信支付不成功的几个原因_第2张图片


调试微信支付Demo时特别令人心烦,麻蛋的,不是闪退就是调不起微信支付界面。


微信支付一定要理解的几个概念:


1 导出应用签名

区别于应用签名,使用debug.keystore密钥库,导出应用时进行签名


2 项目包名

比如:com.shangmai.recovery


3 应用签名

签名使用官网提供的工具——Gen_Signature_Android.apk,输入包名生成,比如:a04b960af8bf3b8bde86a25ecb791f84


4 APP_ID

微信开发平台创建移动应用并通过审核后,获取的,比如:wx530bae695c99f478


5 APP_SECRET

同APP_ID一样通过审核后,获取的,比如:8721ac50bd95c09da879f27d7b466a21


6 微信支付接口

默认未开通,开通后获取对应的商户账号,比如:1233848001


7 登录微信支付商户平台

点击“API安全”,设置API密钥,比如:412fde4e6c2e2bb619514ecea142e446


8 修改APP_ID

请同时修改 androidmanifest.xml里面,.PayActivity里的属性


微信支付不成功的几个原因


1 调试官网的支付Demo

使用官网提供的支付Demo,导入Eclipse或Android Studio,不过我下载的Demo是Android Studio版本,只能导入Android Studio中,根据上述罗列的几个概念分析:

Demo提供的包名是:com.weixin.paydemo,但由于Demo未提供对应的debug.keystore,所以无法调起微信支付


2 修改官网的支付Demo

1)生成自己自己的debug.keystore密钥库(建议生成),使用Eclipse或Android Studio默认的debug.keystore也可以,但发布APP时,需要重新使用自己生成的debug.keystore导出签名,否则调不起支付。

2)查看开发平台填写的Android应用包名

3)手机或模拟器上,安装签名工具——Gen_Signature_Android.apk,输入包名,将获取的应用签名,填写到开发平台,同一个包名,应用签名是唯一的

4)APP_ID,微信开发平台“管理中心——查看”,APP_ID是唯一的,替换Demo的APP_ID,同时替换manifest中的属性

,否则调不起支付

5)APP_SECRET,微信开发平台“管理中心——查看”,APP_SECRET允许重置,支付中未用到的常量

6)开通Android应用支付接口,获取商户账号,替换Demo的常量:MCH_ID

7)如果你开通支付接口的邮件中有对应的API密钥,替换Demo的常量:API_KEY。否则,登录商户平台,点击“API安全——设置API密钥”,重置时输入自定义的密钥(必须记住)。

最终支付成功界面:

【Android开发 】微信支付不成功的几个原因_第3张图片

同样的一个Demo,在我这里测试可以成功调起支付界面,将Demo导入到你的Eclipse或Android Studio中运行不成功,原因在于我使用了自己的debug.keystore密钥库导出签名,你使用的是自己的debug.keystore或默认的debug.keystore,所以按照上述要求修改即可。


原文链接:http://teachcourse.cn/1603.html 


你可能感兴趣的:(微信支付宝支付)