Android 微信 APP 支付遇到的问题

在 Android APP 开发中接入微信支付遇到的问题,以及需要注意的配置。

一、微信支付配置文件的几个 ID


  • APP_ID:微信开放平台创建移动应该获得(创建移动应用需要注意的地方下面会单独说明)。

  • MCH_ID(商户号):在微信开放平台申请开通微信支付功能,审核通过之后会收到一个邮件,里面包括微信支付商户号,这个商户号是和我们的 appid 相对应的。一下是我们申请微信支付成功之后收到的邮件。

    申请开通微信支付功能

  • API_KEY(API密钥):API 秘钥是从微信商户平台获得的,使用上图中得到的商户平台登录账号和密码登录微信商户平台(账号设置–>API安全–>设置秘钥)自己设置。

    申请开通微信支付功能

二、微信开放平台创建移动应用


  1. 应用签名:从自己项目的签名 keystore 文件中获取,重点说明这里的签名文件必须是项目正式打包的签名文件,否则打包好的 APP 在调用微信支付的时候胡出现errCode=-1导致无法启动微信支付功能。经测试微信开发平台应用签名必须是小写字母并且没有冒号, 类似下面的一个字符串。

    应用签名:049a9fde46bfc5087f3825582208b248

  2. 包名:项目 AndroidManifest.xml 中的 package 就是我们想要的包名。

    例如:package="com.example.test"那么 com.example.test 就是项目签名。

三、微信支付已经申请开通,开发项目 中的账号也设置好了,但是支付的时候还是返回 errCode=-1


出现这个问题的可能原因是微信开发文档中说的是:签名错误、未注册 APPID、项目设置 APPID 不正确、注册的 APPID 与设置的不匹配、其他异常等。这里分别说明一下:

签名错误:就是在微信开放平台创建移动应用的时候添加的应用签名,认真检查一下格式是否符合要求。

未注册 APPID、项目设置 APPID 不正确、注册的 APPID 与设置的不匹配:这里只要认证填写一般不会出现错误。

其他异常:

  • 因为微信中有缓存设置,所以可能出现我们第一次成功打开了微信支付,但是第二次却不能打开微信支付功能,这时候只要清空微信的缓存即可。

  • 无法开启微信支付功能,这时候需要查看我们打包的签名文件是否是我们的正式签名文件,这个文件和申请微信的时候使用的必须是同一个签名文件。

  • 微信支付还有一个不成文的规矩,下图中指出的文件夹和回调文件,名称不能换,必须是这样。

(完)