Day22:22 - 结帐服务(6) - 前端 - 结帐 X PayPal付款

Helló,我是Charlie!
在Day21当中我们完成了後端的paypal sdk,在今天我们将完成前端结帐的部分。

================================◉‿◉=================================

首先是结帐的部分,在createOrder里面的checkout新增导向approve link的程序码:

checkout(){
  var username = window.localStorage.getItem("username")
  var token = window.localStorage.getItem("token")
  createOrderData(username,token).then((response) => {
    if(response.data.code == STATUS_OK){
      window.localStorage.setItem('orderID',response.data.data.orderid)
      window.location.href = response.data.link.approve
    }else{
      this.$fire({type:"error",text:response.data.data})
    }
  })
},

接着创立两个vue:orderCreated跟orderCanceled,并且设立路由:

  {
    path: "/orderCreated",
    name:"createPaypalPage",
    component: orderCreated,
    meta: {
      title: "付款建立"
    }
  },
  {
    path: "/orderCanceled",
    name: "cancalOrderPage",
    component: orderCanceled,
    meta: {
      title: "付款取消"
    }
  }

接着在order.js当中,新增打capture order的API:

export function captureOrder(orderID,token){
  return axios.post(`http://${host()}:${port()}/userorder/capture/${orderID}`,{
    headers:{
      "AUTHORIZATION":token
    }
  })
}

接着修改orderCreated.vue,让这个vue显示付款成功或者付款失败:

<template>
	<html lang="zh-Hant-TW">
	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
	<link rel="icon" type="image/x-con" href="@/assets/favicon.ico">
		<div id="app">
			<headerComponent></headerComponent>
			<div class="info" style="margin:0 auto;width: 50%;height: 50%;text-align: center;">
				<img :src="successImage" alt="" style="width:300px;height: 300px;">
				<h4>{{ successText }}</h4>
			</div>
		</div>
	</html>
</template>

<script>
  import { captureOrder } from '@/apis/order.js'
  import { STATUS_OK } from '@/apis/constant.js'
  export default{
    name: "orderCreated",
    components:{
      'headerComponent':() => import('@/components/header.vue')
    },
    data(){
      return {
        successImage:"",
        successText: ""
      }
    },
    created(){
      var orderid = window.localStorage.getItem("orderID")
      console.log(orderid)
      var token = window.localStorage.getItem("token")
      captureOrder(orderid,token).then((response) => {
        console.log(response)
        if(response.status == STATUS_OK){
          this.successImage = "https://i.imgur.com/mBolVrx.jpg"
          this.successText = "付款成功"
        }else{
          this.successImage = "https://i.imgur.com/EJjpUGf.png"
          this.successText = "付款失败"
        }
      })
    }
  }
</script>

cancel的话就是固定页面,这里就不赘述了。

接着便可测试是否能结帐成功:

Imgur

================================◉‿◉=================================

Day22结束了!在今天我们完成了前端的付款,而明天我们将实作订单API的部分,See ya next day!


<<:  【Day23】导航元件 - Pagination

>>:  【心得】border-radius 知多少~

没钱就跟别人要钱,别人的钱就是我的钱,但我的钱还是我的钱

乞讨功能 写个乞讨的功能...... # cogs/money.py @commands.comma...

[Re:PixiJS - Day43] pixi-particles 粒子效果 1/2:plugin 安装与开始使用

来到这次系列最後想讲的主体:粒子效果 PixiJS 实现粒子效果有两种方式: ParticleCon...

Day07 - this&Object Prototypes Ch3 Objects - Contents - Immutability

今天看 Immutability(不可变),作者提供适用於不同情境的四种方法,将物件设定为不可更变的...

[Day15] TS:在 Mapped Type 中使用 Template Literal 来改物件型别中的所有 key

上面这个是今天会提到的内容,如果你已经可以轻松看懂,欢迎直接左转去看我队友们的精彩文章! 昨天我们...

为了转生而点技能-JavaScript,day11(函式内的变数、Callback function

前言:本篇目的为简要纪录函式内的变数种类与功能、参数赋予及厘清Callback function的运...