Android问题集锦(八)- Android 微信支付成功后没有回调问题

时间:2024-10-23 07:45:29

还在为接入支付烦恼吗,下面只要一行代码即可发起支付。

 (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"属性点击打开链接