微信支付其实并没有那么难



微信支付其实并没有那么难

流程:
1. 向后台发送数据,传递金额,userId等参数,后台做统一下单处理
2. 获取到返回的参数: 调用微信支付

JSONObject jsonMsg=jsonObject.getJSONObject("data");
PayReq req = new PayReq();

req.appId        = Constants.APP_ID;
req.partnerId     = jsonMsg.getString("mch_id");
req.prepayId      = jsonMsg.getString("prepay_id");
req.nonceStr      = jsonMsg.getString("nonce_str") //随机字符串
req.timeStamp     = jsonMsg.getString("timestamp");
req.packageValue   "Sign=WXPay";
req.sign         = jsonMsg.getString("sign");

Toast.makeText(PayActivity.this, "正常调起支付"Toast.LENGTH_SHORT).show();
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
api.sendReq(req);

3. 处理微信支付的回调就是在刚刚创建的WXEntryActivity中处理。需要实现IWXAPIEventHandler接口,这个接口会要求你实现onResp方法,我们就在这个方法中处理回调。
@Override
public void onResp(BaseResp resp) {
   Log.d(TAG"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_msgString.valueOf(resp.errCode)));
      builder.show();
   }
}
 
   最有可能可能出现问题的地方就是签名啦,有的时候我们在微信开放平台写入的是正式版的签名。程序写完了,感觉没问题了,开始运行,发现调不起来支付, 因为直接运行APP 默认用的是debug模式,签名不一致呀,所以不行。可以先去打一个正式版的包,装在手机上,在运行就OK了。
   我的sign签名是在后台做的,直接返回给我,方便了很多,如果是在前台做,需要进行MD5加密,网络上有很多的例子,就不再叙述了。微信官方也推荐签名在后台做,前端对于数据的处理计算工作越少越好啦。
   没接入之前听说微信支付的坑很多,自然而然也会感觉好难得样子,在网上也看了好多资料,后台接口写完了,正式开始撸代码,好在没有遇到什么坑,嘿嘿!
   参考的微信支付相关文章:

微信支付其实并没有那么难

流程:
1. 向后台发送数据,传递金额,userId等参数,后台做统一下单处理
2. 获取到返回的参数: 调用微信支付

JSONObject jsonMsg=jsonObject.getJSONObject("data");
PayReq req = new PayReq();

req.appId        = Constants.APP_ID;
req.partnerId     = jsonMsg.getString("mch_id");
req.prepayId      = jsonMsg.getString("prepay_id");
req.nonceStr      = jsonMsg.getString("nonce_str") //随机字符串
req.timeStamp     = jsonMsg.getString("timestamp");
req.packageValue   "Sign=WXPay";
req.sign         = jsonMsg.getString("sign");

Toast.makeText(PayActivity.this, "正常调起支付"Toast.LENGTH_SHORT).show();
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
api.sendReq(req);

3. 处理微信支付的回调就是在刚刚创建的WXEntryActivity中处理。需要实现IWXAPIEventHandler接口,这个接口会要求你实现onResp方法,我们就在这个方法中处理回调。
@Override
public void onResp(BaseResp resp) {
   Log.d(TAG"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_msgString.valueOf(resp.errCode)));
      builder.show();
   }
}
 
   最有可能可能出现问题的地方就是签名啦,有的时候我们在微信开放平台写入的是正式版的签名。程序写完了,感觉没问题了,开始运行,发现调不起来支付, 因为直接运行APP 默认用的是debug模式,签名不一致呀,所以不行。可以先去打一个正式版的包,装在手机上,在运行就OK了。
   我的sign签名是在后台做的,直接返回给我,方便了很多,如果是在前台做,需要进行MD5加密,网络上有很多的例子,就不再叙述了。微信官方也推荐签名在后台做,前端对于数据的处理计算工作越少越好啦。
   没接入之前听说微信支付的坑很多,自然而然也会感觉好难得样子,在网上也看了好多资料,后台接口写完了,正式开始撸代码,好在没有遇到什么坑,嘿嘿!
   参考的微信支付相关文章:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值