1、首先在微信开放平台上有账号,并创建一个应用,填上您的包名、签名(注:签名最好是将app装在手机上、然后通过签名获取工具来获取签名,微信开放平台上面有),通过微信支付审核后即可开始开发。
2、开始开发app
创建一个类继承自Application,在入口处注册微信api
// 微信api
api = WXAPIFactory.createWXAPI(this, Constants.WXAPPID, true);
api.registerApp(Constants.WXAPPID);
3、在需要调用微信支付的地方,
IWXAPI api = WXAPIFactory.createWXAPI(activity, Constants.WXAPPID);
// 判断是否安装微信
if (!api.isWXAppInstalled()) {
return;
}
// 判断微信版本是否支持支付
if (api.getWXAppSupportAPI() < Build.PAY_SUPPORTED_SDK_INT) {
return;
}
// 解析服务端发来的json
JSONObject mJSON = null;
try {
mJSON = new JSONObject(strJson);
} catch (JSONException e) {
e.printStackTrace();
}
// 发送请求
PayReq req = new PayReq();
try {
req.appId = mJSON.getString("appid");
req.partnerId = mJSON.getString("partnerid");
req.prepayId = mJSON.getString("prepayid");
req.nonceStr = mJSON.getString("noncestr");
req.timeStamp = mJSON.getString("timestamp");
req.packageValue = "Sign=WXPay";
req.sign = mJSON.getString("sign");
} catch (JSONException e) {
e.printStackTrace();
}
api.sendReq(req);
如此即可调起微信支付,如果不能调起,先检查签名、包名是否与开放平台上面的一致,若一致则是服务端的问题,一般是服务端签名问题,关于服务端怎么实现,过几天也会写博客分享出来。