From 1910e9f27373b8b4da75f076762025ceb3419965 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 12 六月 2025 15:40:50 +0800
Subject: [PATCH] fix: 暂时隐藏电信充值通道
---
packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue | 114 +++++++++-----------------------------------------------
1 files changed, 19 insertions(+), 95 deletions(-)
diff --git a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
index 0e784f8..2b50807 100644
--- a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
+++ b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
@@ -13,17 +13,12 @@
</template>
<script setup lang="ts">
-import IconWeixin from '../../../assets/icon-weixin-pay.png';
-import IconAliPay from '../../../assets/icon-alipay.png';
-import {
- useLifeRechargeContext,
- SetLifePayOrderPayTypeInput,
- LifeRechargeConstants,
- GetPayOrderForJsAPIInput,
-} from '@life-payment/core-vue';
-import { useQuery } from '@tanstack/vue-query';
+import IconWeixin from '../../assets/icon-weixin-pay.png';
+import IconAliPay from '../../assets/icon-alipay.png';
+import { LifeRechargeConstants } from '@life-payment/core-vue';
import { Toast as NutToast } from '@nutui/nutui-taro';
-import { reactive } from 'vue';
+import { computed, toRef } from 'vue';
+import { useSelectPayType, useGetPayStatusByOrderNo } from '../../hooks/selectPayType';
defineOptions({
name: 'SelectPayTypeView',
@@ -34,10 +29,11 @@
lifePayOrderType?: LifeRechargeConstants.LifePayOrderTypeEnum;
showAliPay?: boolean;
showWeixinPay?: boolean;
- openId?: string;
isInWeChat?: boolean;
isH5?: boolean;
appId?: string;
+ isFocus?: boolean;
+ getOpenId?: () => Promise<string>;
};
const props = withDefaults(defineProps<Props>(), {
@@ -54,102 +50,30 @@
(e: 'payOrderForJsAPISuccess'): void;
}>();
-const state = reactive({
- show: false,
- msg: '',
+const { state, invokeAliPay, invokeWeixinPay } = useSelectPayType({
+ getOpenId: toRef(props, 'getOpenId'),
+ isInWeChat: toRef(props, 'isInWeChat'),
+ isH5: toRef(props, 'isH5'),
+ appId: toRef(props, 'appId'),
});
-
-const { blLifeRecharge } = useLifeRechargeContext();
async function handleAliPay() {
try {
- let res = await setLifePayOrderPayType(blLifeRecharge.constants.LifePayTypeEnum.AliPay);
- if (res) {
- location.href = res;
- }
+ await invokeAliPay(props.orderNo);
} catch (error) {}
}
async function handleWeixinPay() {
- if (props.isH5) {
- if (props.isInWeChat) {
- handleWeixinPayByJsApi();
- } else {
- // try {
- // let res = await setLifePayOrderPayType(blLifeRecharge.constants.LifePayTypeEnum.WxPay);
- // if (res) {
- // location.href = res;
- // }
- // } catch (error) {}
- state.msg = '璇峰湪寰俊涓墦寮�';
- state.show = true;
- }
- }
-}
-
-async function handleWeixinPayByJsApi() {
try {
- let params: GetPayOrderForJsAPIInput = {
- orderNo: props.orderNo,
- lifePayType: blLifeRecharge.constants.LifePayTypeEnum.WxPay,
- openId: props.openId,
- attach: Date.now().toString(),
- };
- let res = await blLifeRecharge.services.getPayOrderForJsAPI(params);
- //@ts-ignore
- if (res && WeixinJSBridge) {
- //@ts-ignore
- WeixinJSBridge.invoke(
- 'getBrandWCPayRequest',
- {
- appId: props.appId, //鍏紬鍙稩D锛岀敱鍟嗘埛浼犲叆
- timeStamp: res.timestamp, //鏃堕棿鎴筹紝鑷�1970骞翠互鏉ョ殑绉掓暟
- nonceStr: res.nonceStr, //闅忔満涓�
- package: res.package,
- signType: res.signType, //寰俊绛惧悕鏂瑰紡锛�
- paySign: res.paySign, //寰俊绛惧悕
- },
- function (res) {
- if (res.err_msg == 'get_brand_wcpay_request:ok') {
- // 浣跨敤浠ヤ笂鏂瑰紡鍒ゆ柇鍓嶇杩斿洖,寰俊鍥㈤槦閮戦噸鎻愮ず锛�
- //res.err_msg灏嗗湪鐢ㄦ埛鏀粯鎴愬姛鍚庤繑鍥瀘k锛屼絾骞朵笉淇濊瘉瀹冪粷瀵瑰彲闈狅紝鍟嗘埛闇�杩涗竴姝ヨ皟鐢ㄥ悗绔煡鍗曠‘璁ゆ敮浠樼粨鏋溿��
- }
- },
- function (res) {
- console.log('res: ', res);
- }
- );
- }
+ await invokeWeixinPay(props.orderNo);
} catch (error) {}
}
-async function setLifePayOrderPayType(lifePayType: LifeRechargeConstants.LifePayTypeEnum) {
- try {
- let params: SetLifePayOrderPayTypeInput = {
- orderNo: props.orderNo,
- lifePayType: lifePayType,
- };
- return await blLifeRecharge.services.setLifePayOrderPayType(params);
- } catch (error) {}
-}
-
-useQuery({
- queryKey: ['platformServicePayServices/getPayStatusByOrderNo', props.orderNo],
- queryFn: async () => {
- return await blLifeRecharge.services.getPayStatusByOrderNo(
- {
- orderNo: props.orderNo,
- },
- {
- showLoading: false,
- }
- );
+useGetPayStatusByOrderNo({
+ orderNo: toRef(props, 'orderNo'),
+ enabled: computed(() => props.isFocus),
+ onPaySuccess() {
+ emit('paySuccess', props.orderNo, props.lifePayOrderType);
},
- onSuccess(data) {
- if (data !== blLifeRecharge.constants.LifePayStatusEnum.鏈敮浠�) {
- emit('paySuccess', props.orderNo, props.lifePayOrderType);
- }
- },
- refetchInterval: 1000 * 3,
});
</script>
--
Gitblit v1.9.1