Просмотр исходного кода

feat(video-rights): 添加视频权益订单支付功能

- 在配置文件中更新开发环境测试代理地址
- 移除邓姓开发者IP注释并启用测试代理地址
- 实现订单支付逻辑,支持微信小程序和H5支付方式
- 添加立即支付按钮和取消订单按钮界面
- 集成支付结果轮询和支付错误处理机制
- 完善支付成功后的页面跳转逻辑
zouzexu 2 дней назад
Родитель
Сommit
09a193de38

+ 2 - 2
src/config/index.ts

@@ -6,12 +6,12 @@ const mapEnvVersion = {
   // develop: 'http://192.168.1.101:8080',
   // develop: 'http://192.168.0.157:8080',
   // develop: 'http://192.168.1.253:8080',
-  develop: 'http://192.168.0.19:8080', // 邓
+  // develop: 'http://192.168.0.19:8080', // 邓
   // develop: 'http://192.168.1.20:8080', // 黄
   // develop: 'http://192.168.0.11:8081', // 王
   // develop: 'http://192.168.1.21:8080', // 田
   // develop: 'http://74949mkfh190.vicp.fun', // 付
-  // develop: 'http://47.109.84.152:8081', // 测试代理
+  develop: 'http://47.109.84.152:8081', // 测试代理
   // develop: 'https://5ed0f7cc.r9.vip.cpolar.cn',
   // develop: 'https://25740642.r3.cpolar.top',
   // develop: 'https://smqjh.api.zswlgz.com',

+ 42 - 0
src/subPack-videoRights/videoRightsOrderInfo/videoRightsOrderInfo.vue

@@ -30,6 +30,40 @@ async function getOrderDetail() {
   videoRightOrderDetail.value = res.data
 }
 
+async function submitOrderPay() {
+  const payMent = await useUserStore().getPayMent(orderNo.value)
+  if (payMent.payType !== 'point') {
+    try {
+      // #ifdef MP-WEIXIN
+      const res = await useUserStore().handleCommonPayMent(orderNo.value)
+      await useUserStore().getWxCommonPayment(res)
+      router.replace({ name: 'attractions-order-detail', params: { orderNo: String(videoRightOrderDetail.value?.orderNumber), ispay: 'true' } })
+      // #endif
+      // #ifdef H5
+      useUserStore().handleCommonWechatPay(orderNo.value)
+      await handleH5PayResult(orderNo.value)
+      // #endif
+    }
+    catch {
+      await useUserStore().payError('attractions-tabbar', 'subPack-attractions/commonTab/index')
+    }
+  }
+  else {
+    await useUserStore().handleCommonPayMent(orderNo.value)
+    router.replace({ name: 'attractions-order-detail', params: { orderNo: String(videoRightOrderDetail.value?.orderNumber), ispay: 'true' } })
+  }
+}
+
+async function handleH5PayResult(orderNumber: string) {
+  const isPaySuccess = await useUserStore().pollOrderPaySuccess(orderNumber)
+  if (isPaySuccess) {
+    router.replace({ name: 'attractions-tabbar', params: { tabbar: '1' } })
+    return
+  }
+
+  useGlobalToast().show({ msg: '暂未查询到支付成功,请稍后在订单列表查看' })
+}
+
 function orderBack() {
   const vrIndex = 'subPack-videoRights/commonTab/index'
   const pages = getCurrentPages()
@@ -122,6 +156,14 @@ function orderBack() {
           </view>
         </view>
       </view>
+      <view class="mt-20rpx flex items-center justify-between">
+        <wd-button custom-class="w-400rpx mt-10rpx" block size="medium" @click="submitOrderPay">
+          立即支付
+        </wd-button>
+        <wd-button custom-class="w-200rpx mt-10rpx" size="medium" type="info" plain block @click="orderBack">
+          取消订单
+        </wd-button>
+      </view>
     </view>
     <view class="fixed bottom-0 h-174rpx w-full border-[1rpx_solid_#EEEEEE] bg-#FFF px-24rpx">
       <wd-button custom-class="w-702rpx mt-10rpx" block size="large" @click="orderBack">