说明:先看微信开发者平台说明,下载新的SDK,jar,Demo
微信支付流程:
1 获取微信支付 api
public static IWXAPI getWXAPI(Context context) {
return WXAPIFactory.createWXAPI(context, WEICHAT_APPID);
}
2 把微信api注册到应用中
api.registerApp(Constants.WEICHAT_APPID);
3 从服务器获取预支付订单(这里的预支付订单是在服务器完成的)
4 用从服务器获取到的预支付订单信息,构建Req对象,然后调用api.sendReq(req)方法,调起微信支付
PayReq req = new PayReq();
req.appId = WEICHAT_APPID;
req.partnerId = data.partnerid;
req.prepayId = data.prepayid;
req.nonceStr = data.noncestr;
req.timeStamp = data.timestamp;
req.packageValue = "Sign=WXPay";
req.sign = data.sign;
boolean b = api.sendReq(req);
PS:
如果导入微信jar就报错,可能是以下问题;
1。 和友盟的sdk冲突了:
如果项目中使用了友盟分享,那么在导入微信支付的jar包的时候,会报包重复导入,原因是友盟sdk和微信冲突了,在友盟3.3.8以后解决了和微信支付冲突问题,可以不用导入微信支付的jar使用友盟集成的。
如果无法调起支付,可能是以下问题:
1。 签名问题
在微信开发者平台填写的是正式签名,就必须打正式包才能调起。
2。 没有注册微信支付到应用中
在调起前必须要调用注册代码,就是前面的第二步。