From 107ff2dfbb1f87df8cf65aa35ad67e3b65abc572 Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Mon, 20 Jan 2025 17:04:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/axios/src/index.ts | 5 ++ src/router/elegant/routes.ts | 11 +++++ src/service/api/order.ts | 12 +++++ src/service/api/payment.ts | 23 +++++++--- src/typings/api.d.ts | 1 + src/views/billing/wxpay/index.vue | 48 ++++++++++++++++++++ src/views/recharge/balancerecharge/index.vue | 45 ++++++++++++++---- 7 files changed, 129 insertions(+), 16 deletions(-) create mode 100644 src/service/api/order.ts create mode 100644 src/views/billing/wxpay/index.vue diff --git a/packages/axios/src/index.ts b/packages/axios/src/index.ts index 05564fb..12a4290 100644 --- a/packages/axios/src/index.ts +++ b/packages/axios/src/index.ts @@ -56,6 +56,11 @@ function createCommonRequest( } } + // 支付宝支付接口放行 + if (response.config.url?.includes('/payment/aliPay/pcPay')) { + return Promise.resolve(response); + } + if (opts.isBackendSuccess(response)) { return Promise.resolve(response); } diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts index 45906f8..8ae9d28 100644 --- a/src/router/elegant/routes.ts +++ b/src/router/elegant/routes.ts @@ -414,6 +414,17 @@ export const customRoutes: GeneratedRoute[] = [ icon: 'material-symbols:filter-list-off', order: 4 }, + }, + { + name: 'billing_wxpay', + path: '/billing/wxpay', + component: 'view.billing_wxpay', + meta: { + title: '微信支付', + icon: 'material-symbols:filter-list-off', + hideInMenu: true, + order: 10, + }, } ] }, diff --git a/src/service/api/order.ts b/src/service/api/order.ts new file mode 100644 index 0000000..3b09df0 --- /dev/null +++ b/src/service/api/order.ts @@ -0,0 +1,12 @@ +import { request } from '../request'; + +/** + * 获取订单详情 + * + * @param deptId 订单id + */ +export function doGetOrderInfo(orderId: number) { + return request({ + url: `/u/order/${orderId}` + }); +} \ No newline at end of file diff --git a/src/service/api/payment.ts b/src/service/api/payment.ts index df8fcbf..b07728e 100644 --- a/src/service/api/payment.ts +++ b/src/service/api/payment.ts @@ -1,10 +1,19 @@ import { request, rawRequest } from '../request'; -/** Submit order with different types */ +/** AliPay pcPay with orderId */ export function aliPayPcPay(params: {orderId: number}) { - return rawRequest({ - url: '/payment/aliPay/pcPay', - method: 'post', - params - }); - } \ No newline at end of file + return rawRequest({ + url: '/payment/aliPay/pcPay', + method: 'post', + params + }); +} + +/** WxPay scanCode with orderId */ +export function wxPayScanCode(params: {orderId: number}) { + return request({ + url: '/payment/wxPay/scanCode2', + method: 'post', + params + }); +} \ No newline at end of file diff --git a/src/typings/api.d.ts b/src/typings/api.d.ts index 244367c..c286d41 100644 --- a/src/typings/api.d.ts +++ b/src/typings/api.d.ts @@ -704,6 +704,7 @@ declare namespace Api { /** Base order params */ interface BaseOrderParams { type: OrderType; + status: number; } /** Package order params */ diff --git a/src/views/billing/wxpay/index.vue b/src/views/billing/wxpay/index.vue new file mode 100644 index 0000000..ad51402 --- /dev/null +++ b/src/views/billing/wxpay/index.vue @@ -0,0 +1,48 @@ + + + \ No newline at end of file diff --git a/src/views/recharge/balancerecharge/index.vue b/src/views/recharge/balancerecharge/index.vue index e793a5f..3e017dc 100644 --- a/src/views/recharge/balancerecharge/index.vue +++ b/src/views/recharge/balancerecharge/index.vue @@ -4,6 +4,7 @@ import { useI18n } from 'vue-i18n'; import { submitOrder } from '@/service/api/auth'; import { aliPayPcPay } from '@/service/api/payment'; import { message } from 'ant-design-vue'; +import { useRouterPush } from '@/hooks/common/router'; import type { Ref } from 'vue'; defineOptions({ @@ -11,6 +12,7 @@ defineOptions({ }); const { t } = useI18n(); +const { routerPushByKey } = useRouterPush(); interface RechargeOption { amount: number; @@ -116,6 +118,21 @@ const handleAliPay = async () => { console.error('Failed to submit recharge order:', error); } }; +// 微信支付 +const handleWxPay = async () => { + try { + const orderRes = await submitOrder({ + type: 1, + orderAmount: paymentAmount.value + }); + const res = await wxPayScanCode({orderId: orderRes.data}); + routerPushByKey('billing_wxpay', { query: { url: res.data, orderId: orderRes.data } }) + + } catch (error) { + message.error('充值失败,请重试!'); + console.error('Failed to submit recharge order:', error); + } +};