android 接入微信支付的相关问题记录

首先,当确定你的app要接入微信支付后,请提早申请好相关资料。

微信开放平台地址:点击打开链接

按照要求登录注册后,申请新应用,拿到需要的数据,方便后续开发。


在接入的过程中,官网的文档还是很清楚的。关键在于对于错误的返回值描述太过笼统。不方便调试,这里记录遇到的一些坑。

添加好微信依赖包。发起支付

IWXAPI payApi = WXAPIFactory.createWXAPI(this,weChatBean.getAppid(),false);
payApi.registerApp(weChatBean.getAppid());

PayReq payReq = new PayReq();
        payReq.appId = weChatBean.getAppid();
        payReq.partnerId = weChatBean.getPartnerid();
        payReq.prepayId = weChatBean.getPrepayid();
        payReq.packageValue = "Sign=WXPay";
        payReq.nonceStr = weChatBean.getNoncestr();
        payReq.timeStamp = weChatBean.getTimestamp();
        payReq.sign = weChatBean.getSign();

payApi.sendReq(payReq);

如果发现不能调起微信支付,返回error code = -1,请按照以下步骤认真检查:

1.首先检查包名,签名与注册网站上是否一致。

为了方便测试,网站上填写的签名可以先使用AndroidStudio直接运行的app,然后用微信取签名工具取到的签名,不影响调试。最后打包时候在进行更换。

2.检查拼写sign的参数大小写是否区分。手动拼接sign参数的顺序注意要一致,否则生成后的md5不对。一般发起支付需要的参数都是从服务端直接获取。如果服务端不靠谱,请细致检查参数问题。

微信支付接口调试工具点击打开链接,查看对应参数拼装的sign是否正确。

3.如果来回切换签名发起支付进行调试,请考虑清楚微信缓存,或者退出重新登录。有可能已经被记录导致发起失败。

这样下来正常都可以发起。


关于弹出支付后不进app回调的问题。

1.检查manifest里WXPayEntryActivity配置是否有问题,直接复制。

<activity android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:launchMode="singleTop"/>

2.确认build.gradle里applicationId。对应微信类需要在applicationId.wxapi下

假如包名为com.example.zy , WXPayEntryActivity类必须为com.example.zy.wxapi下。否则进不了回调。另外确认包名与网站上申请一致。

3.如果还有问题,请考虑关闭activity相关的跳转动画。


再此记录一下遇到的坑、







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值