diff --git a/src/pagesOrder/detail/detail.vue b/src/pagesOrder/detail/detail.vue index 8c8af09..12a14f8 100644 --- a/src/pagesOrder/detail/detail.vue +++ b/src/pagesOrder/detail/detail.vue @@ -53,7 +53,13 @@ 再次购买 - 模拟发货 + + 模拟发货 + @@ -141,7 +147,7 @@ @@ -192,7 +198,8 @@ import { onLoad, onReady } from '@dcloudio/uni-app' import { useGuessList } from '@/composables' import { ref } from 'vue' import { OrderState, orderStateList } from '@/services/constants' -import { getMemberOrderByIdAPI } from '@/services/order' +import { getMemberOrderByIdAPI, getMemberOrderConsignmentByIdAPI } from '@/services/order' +import { getPayMockAPI, getPayWxPayMiniPayAPI } from '@/services/pay' // 获取屏幕边界到安全区域距离 const { safeAreaInsets } = uni.getSystemInfoSync() @@ -273,6 +280,33 @@ const onTimeup = () => { // 修改订单状态为已取消 order.value!.orderState = OrderState.YiQuXiao } + +// 订单支付 +const onOrderPay = async () => { + // 通过环境变量区分开发环境 + if (import.meta.env.DEV) { + // 开发环境:模拟支付,修改订单状态为已支付 + await getPayMockAPI({ orderId: query.id }) + } else { + // 生产环境:获取支付参数 + 发起微信支付 + const res = await getPayWxPayMiniPayAPI({ orderId: query.id }) + await wx.requestPayment(res.result) + } + // 关闭当前页,再跳转支付结果页 + uni.redirectTo({ url: `/pagesOrder/payment/payment?id=${query.id}` }) +} + +// 是否为开发环境 +const isDev = import.meta.env.DEV +// 模拟发货 +const onOrderSend = async () => { + if (isDev) { + await getMemberOrderConsignmentByIdAPI(query.id) + uni.showToast({ icon: 'success', title: '模拟发货完成' }) + // 主动更新订单状态 + order.value!.orderState = OrderState.DaiShouHuo + } +} diff --git a/src/services/order.ts b/src/services/order.ts index 9185a29..6324266 100644 --- a/src/services/order.ts +++ b/src/services/order.ts @@ -59,3 +59,15 @@ export const getMemberOrderRepurchaseByIdAPI = (id: string) => { url: `/member/order/repurchase/${id}`, }) } + +/** + * 模拟发货-内测版 + * @description 在DEV环境下使用,仅在订单状态为待发货时,可模拟发货,调用后订单状态修改为待收货,包含模拟物流。 + * @param id 订单id + */ +export const getMemberOrderConsignmentByIdAPI = (id: string) => { + return http({ + method: 'GET', + url: `/member/order/consignment/${id}`, + }) +} diff --git a/src/services/pay.ts b/src/services/pay.ts new file mode 100644 index 0000000..11ccc55 --- /dev/null +++ b/src/services/pay.ts @@ -0,0 +1,25 @@ +import { http } from '@/utils/http' + +/** + * 获取微信支付参数 + * @param data orderId 订单id + */ +export const getPayWxPayMiniPayAPI = (data: { orderId: string }) => { + return http({ + method: 'GET', + url: '/pay/wxPay/miniPay', + data, + }) +} + +/** + * 模拟支付-内测版 + * @param data orderId 订单id + */ +export const getPayMockAPI = (data: { orderId: string }) => { + return http({ + method: 'GET', + url: '/pay/mock', + data, + }) +}