微信支付全流程实现--踩过的坑

本文详细介绍了微信支付的全过程,包括微信授权获取code、通过code获取openid以及唤起支付并处理回调。在实际操作中,需要注意授权时的URL编码、code的有效期、openid的获取以及微信浏览器的特性和接口调用的细节。最后提醒读者在微信环境中避免使用alert调试,并关注this的指向问题。
摘要由CSDN通过智能技术生成

微信支付所经历的流程:

  • 1.用户下单后,进行微信授权,获取临时凭证code值。
  • 2.把code凭证发送到服务端获取openid。
  • 3.通过openid、订单号,从后台获取微信支付参数。
  • 4.传入支付参数,唤起微信支付。
  • 5.成功、失败、取消回调处理。

第一步:微信授权,获取code值

订单页面

  • 点击 “立即支付” 进行微信授权操作:
    • 使用GET请求方式,请求后端提供的微信授权接口,并拼接回调url参数(这里的url记得使用encodeURIComponent转码,不然会有问题);
    • 请求微信授权接口后,后端会把页面重定向到支付页面,并在路径中携带我们需要的code值;
getAuthCode() {
   
      window.location.href =
        '项目域名' + '/api/v1/common/wx/auth?callbackUrl=' +
        encodeURIComponent('项目域名' + '/order-pay/') // 唤起微信授权
}
  • 获取支付页面url路径中的code值:
    • 如果有code值,则直接返回code值,若没有code值,则返回false;
    • 拿到code值,接着去获取openid;
getQueryVariable() {
   
      // 获取url中的指定参数值
      const text_html = window.location.href // 获取当前路径
      let trag = false // 中间变量
      let code = '' // 要返回的code值
      if (text_html.indexOf('?') > 0) {
   
        var params = text_html.substring(text_html.indexOf('?') + 1)
        if (params) params = params.split('&')
        params.forEach(function(p) {
   
         	var kv = p.split('=')
          	if (kv[0
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值