Android 微信 APP 支付遇到的问题
在 Android APP 开发中接入微信支付遇到的问题,以及需要注意的配置。
一、微信支付配置文件的几个 ID
APP_ID:微信开放平台创建移动应该获得(创建移动应用需要注意的地方下面会单独说明)。
MCH_ID(商户号):在微信开放平台申请开通微信支付功能,审核通过之后会收到一个邮件,里面包括微信支付商户号,这个商户号是和我们的 appid 相对应的。一下是我们申请微信支付成功之后收到的邮件。
API_KEY(API密钥):API 秘钥是从微信商户平台获得的,使用上图中得到的商户平台登录账号和密码登录微信商户平台(账号设置–>API安全–>设置秘钥)自己设置。
二、微信开放平台创建移动应用
应用签名:从自己项目的签名 keystore 文件中获取,重点说明这里的签名文件必须是项目正式打包的签名文件,否则打包好的 APP 在调用微信支付的时候胡出现
errCode=-1
导致无法启动微信支付功能。经测试微信开发平台应用签名必须是小写字母并且没有冒号, 类似下面的一个字符串。应用签名:049a9fde46bfc5087f3825582208b248
包名:项目 AndroidManifest.xml 中的 package 就是我们想要的包名。
例如:
package="com.example.test"
那么 com.example.test 就是项目签名。
三、微信支付已经申请开通,开发项目 中的账号也设置好了,但是支付的时候还是返回 errCode=-1
出现这个问题的可能原因是微信开发文档中说的是:签名错误、未注册 APPID、项目设置 APPID 不正确、注册的 APPID 与设置的不匹配、其他异常等。这里分别说明一下:
签名错误:就是在微信开放平台创建移动应用的时候添加的应用签名,认真检查一下格式是否符合要求。
未注册 APPID、项目设置 APPID 不正确、注册的 APPID 与设置的不匹配:这里只要认证填写一般不会出现错误。
其他异常:
因为微信中有缓存设置,所以可能出现我们第一次成功打开了微信支付,但是第二次却不能打开微信支付功能,这时候只要清空微信的缓存即可。
无法开启微信支付功能,这时候需要查看我们打包的签名文件是否是我们的正式签名文件,这个文件和申请微信的时候使用的必须是同一个签名文件。
微信支付还有一个不成文的规矩,下图中指出的文件夹和回调文件,名称不能换,必须是这样。
(完)