项目中要接入微信支付,按往常我们集成第三方流程一样,先看开发文档。
1、首先确定微信开放平台中,应用签名是你项目生成.jks的签名,包名必须和项目包名一致。
注意:签名是MD5串,必须小写。建议用代码输输出下,防止出错。
2、然后引jar到项目中,在支付之前按如下文档所说,注册AppId。
注意:IWXAPI 应该声明为全局的,不要final修饰,下面发起支付要用到。
我是这样注册的:
3、然后拿到服务器返回给你的参数,按如下方法调起支付。
注意:IWAPI 没必要再声明一次,而且文档的参数有误,直接用上面声明的全局api 发起支付。
4、拿到回调,判断支付状态。
注意:必须在包名为com.xxx.xxx.wxapi 的 WXPayEntryActivity类中拿到这个回调,包名和类型必须如此命名:
必须实现IWXAPIEventHandler 这个接口(可参考Demo):
还有,需要在Manifest里 为WXPayEntryActivity 类配置如下属性:
5、根据回调中resp.errCode 的值判断是否支付成功。
返回 -1 的情况:
开放平台注册的应用签名和项目生成的不一样;
AppId未注册,包名不一致;
调起支付的参数有问题,后台生成预付订单再次签名有问题。
如果签名修改过,不会立即生效的。可能一天,也可能得两三天。我当时签名也是修改过的,一下午都是返回-1,第二天早才可以正常调起微信。
如果以上操作都没问题,还是返回 -1,那就是写后台的问题了,找他去~
网友评论