今天这篇文章讨论一下微信支付,微信支付客户端需要做的事情不多,基本交互在SDK文档里已经十分详细。
所以客户端所要做的事情很简单,接受服务器端传过来的参数,发起微信支付。核心代码如下:
PayReq req = new PayReq();
req.appId = Constants.WEIXIN_APP_ID; //微信开发者平台注册的Appid
req.partnerId = Constants.WEIXIN_PARTNER_ID;/ /财付通id
req.prepayId = orderBean.getPrepayid();/ /预支付订单的id
req.packageValue = orderBean.getPackage_qv();/ /package包
req.nonceStr = orderBean.getNoncestr(); / /32位随机串
req.timeStamp = Long.toString(orderBean.getTimestamp()); / /时间戳
req.sign = orderBean.getSign();/ /签名
api.sendReq(req);/ /发起微信支付
微信支付之后要接受微信支付的返回结果:在项目中新建一个wxapi的包,里面要新建一个类WXPayEntryActivity,类里面要实现onResp方法来接收结果:
@Override
public void onResp(BaseResp resp) {
ELog.i("onPayFinish, errCode =" + resp.errCode);
if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.app_tip);
builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
builder.show();
}
}
返回的Code有三种,0表示支付成功,-1表示支付失败,-2表示支付取消。当然微信返回的值不准确,实际应用的时候应该以服务器返回的结果为准。