还在为接入支付烦恼吗,下面只要一行代码即可发起支付。
(this)
.setNonceStr("xxxxxx")
.setTimeStamp("xxxxxx")
.setPrepayId("xxxxxx")
.setPartnerId("xxxxxx")
.setSign("xxxxxx")
.setPayResultListener(new PayResultListener() {
@Override
public void onCancel() {
("wx pay cancel");
}
@Override
public void onSuccess() {
("wx pay success");
}
@Override
public void onFailed(String error) {
("wx pay error: " + error);
}
}).pay();
推荐一个封装库 /751496032/UMHelper
接入过这么多第三方SDK,最想吐槽的就是腾讯的,文档之类的就不想说了,不管是微信支付还是bugly都是一种折磨,也可能是自己能力欠缺吧……
在接入到调起支付整个过程还算比较顺利,因为整个统一下单及签名之类的都是在后台返回的,只要拿到参数就可以调起支付,然后正以为可以大功告成时,发现支付成功和取消支付始终无法走到WXPayEntryActivity的onResp()回调函数中,接下来就是痛苦的排查了
首页就是排查WXPayEntryActivity是否存放在包名.wxapi目录下
接着查看了mainfest清单文件Activity声明注册是否正确,最好以全名的方法进行name赋值,防止有多个applicationId时出现一些不必要的问题
同时核对applicationId与微信开放平台的填写的是否一致,以及对应的签名是否正确
经过上面的操作所有的参数及步骤都是正确的,发现还是没有回调,最后在一篇博文说到了mainfest文件清单需要添加 android:exported="true",尝试加进去了
最后测试,欣喜若狂啊,测试通过ok
WXPayEntryActivity类的代码最好是别做太多的修改,只需改动两个地方即可:
关于android:exported="true"属性点击打开链接