最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 移动端支付方式概述

    正文概述 掘金(许啊切)   2021-03-01   863

    写在前面


      之前写过商城移动端的项目,涉及到蛮多的支付方式,常常会被各种支付方式的调用方法搞到混乱。所以在此总结一下常用的移动端支付方式。

    移动端支付方式概述

    微信支付


    微信浏览器支付(微信 JSAPI 支付)

      当我们在微信中打开一个 H5 页面,并进行购物付款。这实际上是通过微信的内置浏览器进行网页的浏览的。在这个场景下,我们可以使用微信浏览器提供的 JSAPI 接口调起微信支付模块完成支付。表现形式就是在微信中唤醒了支付控件,完成订单支付。

      这个行为更底层的操作是微信内置浏览器提供了一个内置对象 WeixinJSBridge,我们可以调用这个内置对象上的方法进行微信支付的操作。要注意的是内置对象 WeixinJSBridge 在其他浏览器中无效。

    移动端支付方式概述

    JSAPI 支付的流程和我们使用微信进行扫码支付,大致相似。

    移动端支付方式概述

    1. 示例代码
    // 微信JSAPI支付
        async wechatJSPay() {
          let body = {
            id: this.orderId,
            aggregatePayment: '101',
            paymentChannel: '1002',
            tradeType: 1,
            openid: getCookie('payOpenId')
          }
          let { paymentParams } = await this.getPaymentParams(body)
    
          // 唤起微信支付
          WeixinJSBridge.invoke( // eslint-disable-line
            'getBrandWCPayRequest',
            {
              appId: paymentParams.appId,
              timeStamp: paymentParams.timestamp,
              nonceStr: paymentParams.nonceStr,
              package: paymentParams.package,
              signType: paymentParams.signType,
              paySign: paymentParams.paySign
            },
            res => {
              if (res.err_msg === 'get_brand_wcpay_request:ok') {
                // 支付成功
                this.$router.replace('/payment/payDone')
              } else if (res.err_msg === 'get_brand_wcpay_request:cancel') {
                this.$toast('支付取消')
              } else {
                this.$toast('支付失败')
              }
            }
          )
        },
    
    1. 业务时序图

    移动端支付方式概述

    1. 开发文档地址

    pay.weixin.qq.com/wiki/doc/ap…

    非微信浏览器支付(微信 H5 支付)

      通过微信 H5 支付可以实现在非微信浏览器(如QQ浏览器、谷歌浏览器、Safari等)中使用微信支付的场景。表现形式就是在浏览器中调起了微信APP,并唤醒了其中的微信支付控件,完成订单支付。但是这是有一些前提条件的:商户已有 H5 商城网站,并且已经过ICP备案。

    移动端支付方式概述

    1. 示例代码

      // 微信H5支付
          async wechatH5Pay() {
            let returnUrl = process.env.VUE_APP_MEURL + '/payment/payConfirm'
            let body = {
              id: this.orderId,
              aggregatePayment: '101',
              paymentChannel: '1002',
              tradeType: 3,
              returnUrl
            }
            let { paymentParams } = await this.getPaymentParams(body)
         
            window.location.replace(paymentParams.url)
          },
      
    2. 业务时序图

      移动端支付方式概述

    3. 开发文档地址

      pay.weixin.qq.com/wiki/doc/ap…

    小程序支付

      微信小程序支付跟 JSAPI 支付有些像,因为宿主环境都是微信 APP。但是更简单点,因为小程序封装好了支付的相关 api。首先都是需要后端统一调用微信支付的下单接口,再将返回参数进行签名,和其他参数一起返给前端。前端再使用后端返回的5个支付参数,调用支付api,唤醒微信支付。

    1. 示例代码
    wx.requestPayment(
    {
    'timeStamp': '',
    'nonceStr': '',
    'package': '',
    'signType': 'MD5',
    'paySign': '',
    'success':function(res){},
    'fail':function(res){},
    'complete':function(res){}
    })
    
    1. 业务时序图

    移动端支付方式概述

    1. 开发文档地址

    pay.weixin.qq.com/wiki/doc/ap…

    支付宝支付


      支付宝支付相较于微信支付的零散,集中到了一起。支付宝官方提供一个支付中间页,在这个中间页进行选择浏览器支付还是支付宝 APP 支付。

    移动端支付方式概述

    1. 示例代码
    // 支付宝支付,调用后台接口,后台返回的是一个 form 表单字符串,需要前端创建节点并提交就可以唤起支付支付了
    getAlipay() {
      http.get('/alipay', params).then(res => {
        const div = document.createElement('div')
        
        div.innerHTML = res.data // 这里的 res.data 就是后台返回接收到的数据
        document.body.appendChild(div)
        document.forms[0].setAttribute('target', '_blank') // 新开窗口跳转
        document.forms[0].submit()
      })
    }
    
    1. 支付宝支付开发文档地址

      opendocs.alipay.com/open/203/10…

    代币支付


      代币支付一般指的是使用公司内部发放的虚拟币进行现金的抵扣,具体表现如额度。这种因为不涉及到第三方支付平台,所以相对而言更为简单点。一般都是前端调用后端接口,后端需要先锁定用户使用的代币,等到支付成功后,将锁定的代币状态置为消费。如果支付取消或失败,就需要进一步处理,并在合适时机将锁定的代币释放。


    起源地下载网 » 移动端支付方式概述

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元