一、微信支付不成功的原因
调试微信支付Demo时特别令人心烦,麻蛋的,不是闪退就是调不起微信支付界面,微信支付一定要理解的几个概念:
- 导出应用签名,区别于应用签名,使用debug.keystore密钥库,导出应用时进行签名
- 项目包名,比如:com.shangmai.recovery
- 应用签名,签名使用官网提供的工具——Gen_Signature_Android.apk,输入包名生成,比如:a04b960af8bf3b8bde86a25ecb791f84
- APP_ID,微信开发平台创建移动应用并通过审核后,获取的,比如:wx530bae695c99f478
- APP_SECRET,同APP_ID一样通过审核后,获取的,比如:8721ac50bd95c09da879f27d7b466a21
- 微信支付接口,默认未开通,开通后获取对应的商户账号,比如:1233848001
- 登录微信支付商户平台,点击“API安全”,设置API密钥,比如:412fde4e6c2e2bb619514ecea142e446
- 修改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
- 生成自己自己的debug.keystore密钥库(建议生成),使用Eclipse或Android Studio默认的debug.keystore也可以,但发布APP时,需要重新使用自己生成的debug.keystore导出签名,否则调不起支付
- 查看开发平台填写的Android应用包名
- 手机或模拟器上,安装签名工具——Gen_Signature_Android.apk,输入包名,将获取的应用签名,填写到开发平台,同一个包名,应用签名是唯一的
- APP_ID,微信开发平台“管理中心——查看”,APP_ID是唯一的,替换Demo的APP_ID,同时替换manifest中的属性,否则调不起支付
- APP_SECRET,微信开发平台“管理中心——查看”,APP_SECRET允许重置,支付中未用到的常量
- 开通Android应用支付接口,获取商户账号,替换Demo的常量:MCH_ID
- 如果你开通支付接口的邮件中有对应的API密钥,替换Demo的常量:API_KEY。否则,登录商户平台,点击“API安全——设置API密钥”,重置时输入自定义的密钥(必须记住)
同样的一个Demo,在我这里测试可以成功调起支付界面,将Demo导入到你的Eclipse或Android Studio中运行不成功,原因在于我使用了自己的debug.keystore密钥库导出签名,你使用的是自己的debug.keystore或默认的debug.keystore,所以按照上述要求修改即可
二、推荐阅读
你可能感兴趣的文章
来源:TeachCourse,
每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/1603.html ,谢谢支持!
转载请注明出处: https://www.teachcourse.cn/1603.html ,谢谢支持!