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,
+ })
+}