vue PC项目实现 支付宝支付(跳转至支付界面)

在vue项目中,支付功能并不复杂,具体需求需要配合后端一起实现,本文章将带你简单了解支付功能实现的流程

支付界面如下所示:

 当点击立即支付时,触发支付事件:

支付流程:

        调用支付接口→拿到form表单→调起支付页面→查询支付结果

支付详解:

 1、支付接口的参数并不是固定的,而是由后端决定,在接口发送成功后,我们会的得到响应数据,该数据并非JSON格式,而是一个表单数据!

 2、接下来如何将得到的数据调起支付界面呢?我们需要在页面中有一个可以提供渲染的元素,该元素可以在网页的任何位置

<div ref="alipayWap" v-html="alipay" />

3、在接口响应成功后,将数据渲染到元素内,通过触发表单的提交事件,就可以调起支付接口了,是不是非常简单

// 调用支付接口
payTwoHundred({}).then((res) => {
  // 渲染支付页面
  this.alipay = res.data;
  // 防抖避免重复支付
  this.$nextTick(() => {
    // 提交支付表单
    this.$refs.alipayWap.children[0].submit();
    setTimeout(() => {
      // this.toPayFlag = false;
    }, 500);
  });
}

4、成功后调起的支付界面

其实以上,支付功能已经实现了,但是在支付之后,如何验证是否支付成功呢???

我们需要获取到该支付的订单ID,然后向后端发送请求以验证,但是支付页面跳转之后,是获取不到当前订单ID的,接下来我们需要:

1、在付款成功后,让后端将页面重定向到原来的页面,将需要到参数回调到地址栏

        

 2、回到页面中我们发现,地址栏多了很多参数,截取地址栏的参数,就可以获得订单ID了,接下来只需要发请求验证既可

 

 参考代码:

// 查询是否支付成功
queryPay() {
  // 获取地址栏
  const href = window.location.href;
  // 截取地址栏参数
  const orderId = href.split('?')[1].split('&')[1].split('=')[1];
  const param = {
    orderId: orderId,
    type: '支付宝支付'
  };
  getOrderPayType(param).then((res) => {
    if (res.code === '0000') {
      this.$message.success('支付成功');
    } else {
      this.$message.error('支付失败');
    }
  });
},

     

  • 9
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现支付宝电脑网站支付,需要使用Java和Vue。首先,我们可以使用Java编写后端代码,以处理支付宝支付相关的逻辑。在Java中,可以使用支付宝SDK或者相关的开源库来简化支付流程。这些库通常提供了支付宝所需的API接口,使得我们可以方便地进行支付宝支付的创建、支付请求、支付结果验证等操作。 接下来,在前端使用Vue框架,我们可以创建一个电脑网站支付页面。可以使用Vue的组件化开发方式,将支付相关的组件拆分出来,例如支付按钮、支付结果展示等。在支付按钮点击后,前端将会触发与后端的交互。 前端通过与后端的接口通信,将支付相关的参数传递给后端。后端接收到前端传来的支付参数后,将会使用Java中的代码来获取支付宝支付二维码链接或者跳转链接。在后端生成支付链接后,将其返回给前端。 前端接收到支付链接后,可以根据需要将其展示为二维码或者直接跳转支付宝支付页面。用户可以在支付宝支付页面输入相关支付信息并完成支付操作。 支付完成后,支付宝会发送支付结果通知给我们的后端。后端接收到支付结果通知后,可以进行商户订单的验签以确认支付结果的准确性,并处理相关的业务逻辑。同时,后端将支付结果返回给前端,以便前端更新支付结果的展示。 通过Java和Vue的结合,我们可以实现支付宝电脑网站支付功能。Java负责后端的支付逻辑处理和与支付宝接口的交互,Vue负责前端页面的展示和与后端的交互。这样我们就可以在电脑网站中方便地接入支付宝支付,提供便捷的支付体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值