1、注册微信开放平台账号--》创建应用--》申请开通支付功能
链接:https://open.weixin.qq.com/
2、下载微信支付Demo
链接:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1
3、App内嵌入微信支付
a、注册App到微信:
api = WXAPIFactory.createWXAPI(this, WeixinHelper.APP_ID); // App_ID在创建应用成功之后,在微信开放平台获取
api.registerApp(WeixinHelper.APP_ID);
b、Androidmenifest中配置微信回调Activity:
.wxapi.WXEntryActivity、.wxapi.WXPayEntryActivity // 前缀为App包名,前面两个必须一样,而且必须实现接口:IWXAPIEventHandler
具体的参考微信demo
c、向后台发送统一支付请求:
后台收到请求向微信发送统一支付请求,并且获取预支付id prepayid;
然后将结果返回给客户端
具体需要的参数参考链接:
https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_12&index=2
d、解析返回的参数,封装到PayReq对象,使用api发送请求
api.sendReq(req);
返回的参数一一设置到PayReq中,其中sign参数必须采用如下方式生成:
安全签名算法:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=4_3
另外req.packageValue = "Sign=WXPay"; 这个参数可以写死,不适用服务器返回的
e、各种权限权限,直接从demo拷贝就可以了
参考链接
1、http://blog.csdn.net/jdsjlzx/article/details/47422279
2、http://www.mamicode.com/info-detail-862201.html
上面的两个例子,签名都是在客户端做的,其实这部分最好在服务器做,客户端直接使用就行了;原因是这里需要使用到支付的秘钥,也就是签名算法中需要用到的Key值,不适合在客户端暴露出去。