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

2016-03-22 13:01 评论 12 条

0322-pay fail reason

一、微信支付不成功的原因

调试微信支付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密钥”,重置时输入自定义的密钥(必须记住)

最终支付成功界面:
0322-pay fail account

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

二、推荐阅读

APP签名的三种方式使用说明

微信开放平台怎么创建移动应用

Android应用微信支付功能实现

当前文章价值6.42元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/1603.html ,谢谢支持!

资源分享

分类:Android 标签:,
WP Super Cache静态缓存插件简明使用教程 WP Super Cache静态缓存插件
Android开发之ScrollView控件Demo演示 Android开发之ScrollView控件
ProgressBar+WebView实现自定义浏览器 ProgressBar+WebView实现自定
深入理解接口的定义和意义(2)之MVP实例 深入理解接口的定义和意义(2)之