微信支付对接

1.开通条件

个人没法开通,需要企业或个体工商户,上传营业执照。所以首先进行微信支付申请,打开链接微信支付 - 中国领先的第三方支付平台 | 微信支付提供安全快捷的支付方式,根据个人情况填写申请单,包括上传营业执照,申请完毕后,会收到入驻申请进展通知。

2.收款配置

点开微信收款配置提醒通知,效果如下,获取开发配置指引 

具体相关的指引帮助在这里,不清楚时点击具体的页面进行查看即可:

3.关联账号

登录微信支付平台,登录后进入产品中心,选择App账号管理:

填写AppID和认证主题后,代表需要对接哪个小程序进行微信支付对接,然后等待审核:

主体微信将会收到申请关联授权,这个人通常是老板或者你本人,待他确认后既可看到状态变为了已关联。此时到小程序后台的「开发」-「开发设置」-「商户号」,可看到已绑定商户号。

4.API安全处理

使用商户号的超级管理员登录微信支付商户平台,账户中心,API安全,看到商户API证书后,点击“申请证书”。

之后点击确定,按提示内容往下走流程。下载证书工具,根据提示生成API证书

然后继续根据提示,最后生成证书如下:

此处获取到了apiclient_cert.p12等证书文件,后面会用到此证书。

同样,在API安全页面,也就是申请API证书页面,申请APIv2密钥。过程比较简单,按提示操作即可。

至此商户ID、APIv2密钥、p12证书都具备了:

5.小程序发起请求

小程序界面代码这里就不多写了,就是button按钮时间绑定方法,这个JS方法的核心代码:

unifiedOrder(event) {
    wx.showLoading({
      title: '加载中',
    })
    const { id }= event.currentTarget.dataset;
    var that = this
    app.api.unifiedOrder({//向后台发送支付请求,真正向微信平台发起支付请求的是Java后台
      productId: id,//选择的产品,这个传递参数,具体根据后台和业务情况来
    }).then(res => {
        wx.hideLoading()
        let payData = res.data
        wx.requestPayment({ //利用后台返回的对象,本地开启微信支付
          'timeStamp': payData.timeStamp,
          'nonceStr': payData.nonceStr,
          'package': payData.packageValue,
          'signType': payData.signType,
          'paySign': payData.paySign,
          'success': function (res) {
            that.triggerEvent('unifiedOrder', res)
          },
          'fail': function (res) {

          },
          'complete': function (res) {
            console.log(res)
          }
        })
      }).catch(() => {
        wx.hideLoading()
      })
  }

6.Java后台对接

既然小程序是向后台发送支付请求,而真正向微信平台发起支付请求的是Java后台,接着需要使用binarywang.wxpay插件,向微信平台进行订单提交,主要代码如下:

WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest();
		wxPayUnifiedOrderRequest.setAppid(appId);//小程序appId
		wxPayUnifiedOrderRequest.setBody(body);//订单名称
		wxPayUnifiedOrderRequest.setOutTradeNo(OrderId);//订单Id
		wxPayUnifiedOrderRequest.setTotalFee(discount.getPrice().intValue());//金额
		wxPayUnifiedOrderRequest.setTradeType("JSAPI");//JSAPI支付
wxPayUnifiedOrderRequest.setNotifyUrl("https://your.com/");//订单完成通知回调地址
		wxPayUnifiedOrderRequest.setSpbillCreateIp("127.0.0.1");
wxPayUnifiedOrderRequest.setOpenid(ThirdSessionHolder.getThirdSession().getOpenId());//发起支付请求的OpenId
		return feignWxPayService.unifiedOrder(wxPayUnifiedOrderRequest, SecurityConstants.FROM_IN);//向微信平台提交支付订单

当然,上面的订单完成通知回调地址,需要是你的方法接口,在这个方法里面你可以更新支付时间、支付金额、支付状态等等字段,然后根据自己业务写一些其他逻辑。

7.开通效果

最后提一下,后台开发中,setTotalFee方法的使用,微信默认的单位是分,属性字段类型是int,也就意味着要乘以100,而实际生活中是以元为单位的。最后来看看支付对接成功后的效果:

上方左边的图,是开发工具中调用效果,右边是用真的手机微信测试扫码支付成功。

参考官方文档链接:商户申请接入确认绑定关系方法 - 腾讯客服

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值