From 1ec179d2ae3b7d34fecf4b8c12926be18c5368b6 Mon Sep 17 00:00:00 2001 From: "jqtmviyu@gmail.com" Date: Sat, 6 Mar 2021 22:59:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/http.api.js | 19 +++++++++++++++---- src/pages/pay/pay.vue | 42 +++++++++++++++++++++++++++++++++--------- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/src/common/http.api.js b/src/common/http.api.js index d652423..1ea818b 100644 --- a/src/common/http.api.js +++ b/src/common/http.api.js @@ -23,6 +23,13 @@ const USERS_WXLOGIN_URL = '/users/wxlogin' // 创建订单 const MY_ORDERS_CREATE_URL = '/my/orders/create' +// 获取支付参数 +const MY_ORDERS_REQ_UNIFIEDORDER = '/my/orders/req_unifiedorder' + +// 查看支付状态 +const MY_ORDERS_CHKORDER = '/my/orders/chkOrder' + +// 拿到token const token = uni.getStorageSync('token') || '' // 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作 @@ -52,10 +59,14 @@ const install = (Vue, vm) => { // 获取token getUserToken: (params = {}) => vm.$u.post(USERS_WXLOGIN_URL, params), // 创建订单 - createOrders: (params = {}) => vm.$u.post(MY_ORDERS_CREATE_URL, params, { - Authorization: token - }), - + createOrders: (params = {}) => vm.$u.post(MY_ORDERS_CREATE_URL, params, + {Authorization: token}), + // 获取支付参数 + orderPayParams: (params = {}) => vm.$u.post(MY_ORDERS_REQ_UNIFIEDORDER, params, + { Authorization: token}), + // 更新支付状态 + checkOrder: (params = {}) => vm.$u.post(MY_ORDERS_CHKORDER, params, + { Authorization: token}), } } diff --git a/src/pages/pay/pay.vue b/src/pages/pay/pay.vue index e0c6315..fbbe6e1 100644 --- a/src/pages/pay/pay.vue +++ b/src/pages/pay/pay.vue @@ -32,11 +32,10 @@ v-for="item in cartList" :key="item.goods_id" > - - x{{ item.goods_count }} + + + x{{ item.goods_count }} + @@ -79,15 +78,40 @@ export default { }) }, // 去付款 - payHandle(){ + async payHandle(){ if (!this.address.userName) { - uni.showToast({ title: "请选择收货地址", icon: "none" }); + return uni.showToast({ title: "请选择收货地址", icon: "none" }); } else { - console.log("走支付逻辑"); + // console.log("走支付逻辑"); + // 创建订单 + // 解构拿到goods参数 + const goods = this.cartList + .filter(item => item.goods_select) + .map(({goods_id, goods_count:goods_number, goods_price})=>({ + goods_id, + goods_number, + goods_price + })) + // 拿到订单号 + let {message: {order_number}} = await this.$u.api.createOrders({ + order_price:this.totalPrice, + consignee_addr: this.addressDetail, + goods + }) + console.log(order_number); + // 获取支付参数 + const {message: {pay}} = await this.$u.api.orderPayParams({order_number}) + console.log(pay); + // 调用支付接口 + const res1 = await wx.requestPayment(pay) + console.log(res1) + // 更新支付状态 + const res2 = await this.$u.api.checkOrder(order_number) + console.log(res2); } }, }, - computed: { + computed: { // 拼接收货地址 addressDetail (){ const {detailInfo, countyName, cityName, provinceName} = this.address