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被其它程序调用