From 9b87bcbcad94873dedee7389d1ef9742a8d72c2b Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 21 二月 2025 18:38:57 +0800
Subject: [PATCH] fix: 对接

---
 apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue    |    4 +-
 packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue |   23 +++++------
 packages/components/src/utils/index.ts                                |    1 
 packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue |   54 ++++++++++++++++++++++++++
 packages/components/src/utils/lifeRechargeServices.ts                 |   19 ++++++++-
 5 files changed, 82 insertions(+), 19 deletions(-)

diff --git a/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue b/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
index 97bebf1..f44d4e2 100644
--- a/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
+++ b/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
@@ -12,9 +12,9 @@
   name: 'InnerPage',
 });
 
-function goPay() {
+function goPay(orderNo: string) {
   Taro.navigateTo({
-    url: RouterPath.selectPayType,
+    url: `${RouterPath.selectPayType}?orderNo=${orderNo}`,
   });
 }
 </script>
diff --git a/packages/components/src/utils/index.ts b/packages/components/src/utils/index.ts
index d446ea1..a9807bb 100644
--- a/packages/components/src/utils/index.ts
+++ b/packages/components/src/utils/index.ts
@@ -3,3 +3,4 @@
 export * from './lifeRechargeServices';
 export * from './types';
 export * from './validator';
+export * from './lifeRechargeConstants';
diff --git a/packages/components/src/utils/lifeRechargeServices.ts b/packages/components/src/utils/lifeRechargeServices.ts
index f8f6b2b..d45d643 100644
--- a/packages/components/src/utils/lifeRechargeServices.ts
+++ b/packages/components/src/utils/lifeRechargeServices.ts
@@ -88,6 +88,17 @@
       }
     );
   }
+
+  async setLifePayOrderPayType(body: SetLifePayOrderPayTypeInput, options?: RequestConfig) {
+    return this.request<string>('/api/LifePay/SetLifePayOrderPayType', {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      data: body,
+      ...(options || {}),
+    });
+  }
 }
 
 export interface PhoneMesssageCodeLoginInput {
@@ -151,7 +162,6 @@
 
 export interface LifePhoneDataCreateLifePayOrderInput {
   userId?: string;
-  lifePayType?: LifeRechargeConstants.LifePayTypeEnum;
   productData?: LifePhoneData;
 }
 
@@ -168,12 +178,10 @@
 
 export interface CreateLifePayOrderOutput {
   orderNo?: string;
-  payUrl?: string;
 }
 
 export interface LifeElectricDataCreateLifePayOrderInput {
   userId?: string;
-  lifePayType?: LifeRechargeConstants.LifePayTypeEnum;
   productData?: LifeElectricData;
 }
 
@@ -197,3 +205,8 @@
 export interface APIgetPayStatusByOrderNoParams {
   orderNo?: string;
 }
+
+export interface SetLifePayOrderPayTypeInput {
+  orderNo: string;
+  lifePayType?: LifeRechargeConstants.LifePayTypeEnum;
+}
diff --git a/packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue b/packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue
index a8130de..43fb296 100644
--- a/packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue
+++ b/packages/components/src/views/PhoneBillRecharge/PhoneBillRecharge.vue
@@ -113,12 +113,13 @@
 const emit = defineEmits<{
   (
     e: 'goPay',
-    form: {
-      ispCode: typeof BlLifeRecharge.constants.IspCode;
-      phone: string;
-      parValue: number;
-      name: string;
-    }
+    // form: {
+    //   ispCode: typeof BlLifeRecharge.constants.IspCode;
+    //   phone: string;
+    //   parValue: number;
+    //   name: string;
+    // }
+    orderNo: string
   ): void;
 }>();
 
@@ -172,23 +173,19 @@
   confirmDialogVisible.value = true;
 }
 
-async function createLifePayPhoneOrder() {
+async function goPay() {
   try {
     let params: LifePhoneDataCreateLifePayOrderInput = {
       userId: blLifeRecharge.userId,
-      // lifePayType: 10,
       productData: {
         ispCode: form.ispCode,
         parValue: 0.1,
-        phone: '18858418480',
+        phone: form.phone,
         name: form.ispCode === BlLifeRecharge.constants.IspCode.dianxin ? form.name : '',
       },
     };
     let res = await blLifeRecharge.services.createLifePayPhoneOrder(params);
+    emit('goPay', res.orderNo);
   } catch (error) {}
-}
-
-function goPay() {
-  emit('goPay');
 }
 </script>
diff --git a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
index 95cf51f..6df3a0e 100644
--- a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
+++ b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
@@ -14,6 +14,13 @@
 <script setup lang="ts">
 import IconWeixin from '../../../assets/icon-weixin-pay.png';
 import IconAliPay from '../../../assets/icon-alipay.png';
+import Taro from '@tarojs/taro';
+import {
+  useLifeRechargeContext,
+  SetLifePayOrderPayTypeInput,
+  LifeRechargeConstants,
+} from '../../utils';
+import { useQuery } from '@tanstack/vue-query';
 
 defineOptions({
   name: 'SelectPayTypeView',
@@ -23,5 +30,50 @@
 
 // const props = withDefaults(defineProps<Props>(), {});
 
-function handleAliPay() {}
+const emit = defineEmits<{
+  (e: 'paySuccess', id: number): void;
+}>();
+
+const router = Taro.useRouter();
+const orderNo = router.params?.orderNo ?? '';
+
+const { blLifeRecharge } = useLifeRechargeContext();
+
+async function handleAliPay() {
+  try {
+    let res = await setLifePayOrderPayType(blLifeRecharge.constants.LifePayTypeEnum.AliPay);
+    if (res) {
+      location.href = res;
+    }
+  } catch (error) {}
+}
+
+async function setLifePayOrderPayType(lifePayType: LifeRechargeConstants.LifePayTypeEnum) {
+  try {
+    let params: SetLifePayOrderPayTypeInput = {
+      orderNo: orderNo,
+      lifePayType: lifePayType,
+    };
+    return await blLifeRecharge.services.setLifePayOrderPayType(params);
+  } catch (error) {}
+}
+
+// useQuery({
+//   queryKey: ['platformServicePayServices/getPlaformServicePayQRCode', orderNo],
+//   queryFn: async () => {
+//     return await blLifeRecharge.services.getPayStatusByOrderNo(
+//       {
+//         orderNo,
+//       },
+//       {
+//         showLoading: false,
+//       }
+//     );
+//   },
+//   onSuccess(data) {
+//     if (data === blLifeRecharge.constants.LifePayStatusEnum.宸叉敮浠�) {
+//     }
+//   },
+//   refetchInterval: 1000 * 3,
+// });
 </script>

--
Gitblit v1.9.1