关于微信APP支付遇到的坑

来源:互联网 发布:lol 4k分辨率优化 编辑:程序博客网 时间:2024/05/18 00:56


1、在服务端调用统一支付时,返回 预支付交易会话ID,然后生成调用支付请求参数,参数可见https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2,其中sign的值是不包括sign的请求参数重新签名得到的值。


2、客户端,android中依照demo中配置请求参数,如demo中的例子

PayReq req = new PayReq();
req.appId  = json.getString("appid");
req.partnerId = json.getString("partnerid");
req.prepayId = json.getString("prepayid");
req.nonceStr = json.getString("noncestr");
req.timeStamp = json.getString("timestamp");
req.packageValue= json.getString("package");
req.sign = json.getString("sign");
req.extData = "app data"; // optional

// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
api.sendReq(req);


3、 (神坑) 支付成功后的回调配置,需在你的项目包下面新建wxapi包,然后把demo中的WXPayEntryActivity放到该包中(如我的包是com.demo,那么WXPayEntryActivity的包就是com.demo.wxapi),还需在AndroidManifest.xml配置

<activity android:name=".wxapi.WXPayEntryActivity"    android:screenOrientation="portrait"    android:exported="true"    android:launchMode="singleTop"    android:theme="@android:style/Theme.Translucent"></activity>

其中红色部分是必须的,否则无法正常回调。

android:exported="true"  主要作用是是否允许activity被其它程序调用


0 0