vue 支付

支付宝H5支付,基本流程就是在前台使用服务器提供的接口创建订单,服务器根据支付宝提供的SDK,进行签名等一系列操作,具体可以参见支付宝的官方文档https://docs.open.alipay.com/203,当服务器完成这些操作后会会返回一个form表单,前台拿到后家在这个form表单就可以了。

让我最困扰最耽误时间的就是在使用返回的form数据
基本形式:
<form id='alipaysubmit' name='alipaysubmit' action='https://openapi.alipay.com/ga...' method='POST'>
....

在vue中使用form的方式:

netTool.createdOrder(params).then(response => {

      if (response.errno === '0') {
        console.log('输出正确', response);
        this.datadorm = response.result.wappay;

        const div = document.createElement('div');
        div.innerHTML = this.datadorm;
        document.body.appendChild(div);
        document.forms.alipaysubmit.submit();
      } else {
        console.log('传输错误');
      }
    });
    
  • netTool.createdOrder(params)是用来发送网络请求

  • 在response中接收返回的form表单数据,
    也就是this.datadorm = response.result.wappay进行接收;

  • 将返回的表单挂到html上;

最后就是调用执行了,我是在created周期中调用的;

对于支付结果后台需要与支付宝发起异步通知,并且验签,我们还要在后台添加一个同步通知(return_url)就是在前台支付完成的跳转结果通知页面。

原文地址:https://www.cnblogs.com/xiaoer-heidou/p/9466751.html