您的位置:首页 > 移动开发 > 微信开发

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

2016-09-25 15:47 441 查看




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

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

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

2项目包名
比如:com.shangmai.recovery

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

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

5APP_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密钥”,重置时输入自定义的密钥(必须记住)。

最终支付成功界面:



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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: