其实微信支付的集成步骤也就那么几步,奈何第一次接触无论是微信官方文档还是5+SDK文档都看的晕头转向,于是我换个思路
(以下只针对android app支付功能,服务端为java)
1、首选确定app已经开通支付功能,确保 包名、应用签名、appid、mchid、apikey
(包名、应用签名、appid 在https://open.weixin.qq.com/中查看;mchid、apikey 在https://pay.weixin.qq.com/中获得;关于应用签名和包名可查看https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5,里面提供验证包名和应用签名匹配的apk,应用签名可修改,但不会立即生效)
2、下载http://pan.baidu.com/s/1slI29aP的工程,将工程中的包名换成你自己的,将Constants.java中的信息补充完成并打包签名成apk,安装在android手机中查看是否能正常调用微信的支付功能,不能正常调起微信支付说明你1中的信息不正确
3、在https://github.com/wxpay/WXPay-SDK-Java下载封装包(微信官方提供,分别有php、c、node.js、java、Python,本例以java为例)引入到服务端,代码如下
MyConfig config = new MyConfig();
WXPay wxpay = new WXPay(config);
Map data = new HashMap();
data.put("body", body);
data.put("out_trade_no", outTradNo);
data.put("total_fee", totalFee);
data.put("trade_type", "APP");
data.put("spbill_create_ip", clientIp);
data.put("notify_url", "http://192.168.1.101/login.html");
Map resp = wxpay.unifiedOrder(data);
Map app = new HashMap<>();
app.put("appid", MyConfig.APP_ID);
app.put("partnerid", MyConfig.MCH_ID);
app.put("prepayid", resp.get("prepay_id"));
app.put("noncestr", WXPayUtil.generateNonceStr());
app.put("timestamp", String.valueOf(System.currentTimeMillis()/1000));
app.put("package", "Sign=WXPay");
String sign = WXPayUtil.generateSignature(app, MyConfig.API_KEY);
app.put("sign", sign);
return app;
使用HBuilder需要使用自己的签名打包安装才能看到效果,在调试状态下会报-100