diff --git a/package.json b/package.json index 0f5690e4f..e8018fe9f 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "@vben/hooks": "workspace:*", "@vue/shared": "^3.5.8", "@vueuse/core": "^10.11.1", + "@vueuse/shared": "^10.11.1", "@zxcvbn-ts/core": "^3.0.4", "ant-design-vue": "^4.2.5", "axios": "^1.7.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d70989743..415ffa4b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: '@vueuse/core': specifier: ^10.11.1 version: 10.11.1(vue@3.5.8(typescript@5.6.2)) + '@vueuse/shared': + specifier: ^10.11.1 + version: 10.11.1(vue@3.5.8(typescript@5.6.2)) '@zxcvbn-ts/core': specifier: ^3.0.4 version: 3.0.4 @@ -3132,15 +3135,6 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -7025,7 +7019,7 @@ snapshots: '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -7384,7 +7378,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.25.6 '@babel/types': 7.24.0 - debug: 4.3.5 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7841,7 +7835,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.7 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -7857,7 +7851,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -8059,7 +8053,7 @@ snapshots: '@pm2/pm2-version-check@1.0.4': dependencies: - debug: 4.3.4 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -8068,8 +8062,8 @@ snapshots: '@purge-icons/core@0.10.0': dependencies: '@iconify/iconify': 2.1.2 - axios: 0.26.1(debug@4.3.5) - debug: 4.3.5 + axios: 0.26.1(debug@4.3.7) + debug: 4.3.7 fast-glob: 3.3.2 fs-extra: 10.1.0 transitivePeerDependencies: @@ -8494,7 +8488,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.6.2) '@typescript-eslint/utils': 7.7.0(eslint@8.57.0)(typescript@5.6.2) - debug: 4.3.5 + debug: 4.3.7 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -8508,7 +8502,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.7.0 '@typescript-eslint/visitor-keys': 7.7.0 - debug: 4.3.5 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -9051,7 +9045,7 @@ snapshots: '@vueuse/shared@10.9.0(vue@3.4.25(typescript@5.6.2))': dependencies: - vue-demi: 0.14.7(vue@3.4.25(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.4.25(typescript@5.6.2)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -9093,7 +9087,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.4 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -9318,15 +9312,15 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axios@0.26.1(debug@4.3.5): + axios@0.26.1(debug@4.3.7): dependencies: - follow-redirects: 1.15.9(debug@4.3.5) + follow-redirects: 1.15.9(debug@4.3.7) transitivePeerDependencies: - debug axios@1.7.7: dependencies: - follow-redirects: 1.15.9(debug@4.3.5) + follow-redirects: 1.15.9(debug@4.3.7) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -9932,10 +9926,6 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.5: - dependencies: - ms: 2.1.2 - debug@4.3.7: dependencies: ms: 2.1.3 @@ -10676,9 +10666,9 @@ snapshots: optionalDependencies: debug: 4.3.4 - follow-redirects@1.15.9(debug@4.3.5): + follow-redirects@1.15.9(debug@4.3.7): optionalDependencies: - debug: 4.3.5 + debug: 4.3.7 for-each@0.3.3: dependencies: @@ -10781,7 +10771,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.4 + debug: 4.3.7 fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -11029,14 +11019,14 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.7 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -12057,7 +12047,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.7 get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 @@ -12554,7 +12544,7 @@ snapshots: proxy-agent@6.3.1: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.7 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 lru-cache: 7.18.3 @@ -12650,7 +12640,7 @@ snapshots: require-in-the-middle@5.2.0: dependencies: - debug: 4.3.4 + debug: 4.3.7 module-details-from-path: 1.0.3 resolve: 1.22.8 transitivePeerDependencies: @@ -12949,7 +12939,7 @@ snapshots: socks-proxy-agent@8.0.3: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.7 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -13920,6 +13910,10 @@ snapshots: vue-component-type-helpers@2.1.6: {} + vue-demi@0.14.10(vue@3.4.25(typescript@5.6.2)): + dependencies: + vue: 3.4.25(typescript@5.6.2) + vue-demi@0.14.10(vue@3.5.8(typescript@5.6.2)): dependencies: vue: 3.5.8(typescript@5.6.2) diff --git a/src/enums/daxpay/ChannelEnum.ts b/src/enums/daxpay/ChannelEnum.ts index 635361d76..a3fe4be10 100644 --- a/src/enums/daxpay/ChannelEnum.ts +++ b/src/enums/daxpay/ChannelEnum.ts @@ -38,3 +38,15 @@ export enum NotifyContentTypeEnum { /** 支付订单变动通知 */ TRANSFER = 'transfer', } + +/** + * 通道认证状态 + */ +export enum ChannelAuthStatusEnum { + /** 获取中 */ + WAITING = 'waiting', + /** 获取成功 */ + SUCCESS = 'success', + /** 数据不存在 */ + NOT_EXIST = 'not_exist', +} diff --git a/src/views/daxpay/admin/config/platform/PlatformConfig.api.ts b/src/views/daxpay/admin/config/platform/PlatformConfig.api.ts index 05973f7ae..fb1371987 100644 --- a/src/views/daxpay/admin/config/platform/PlatformConfig.api.ts +++ b/src/views/daxpay/admin/config/platform/PlatformConfig.api.ts @@ -16,6 +16,14 @@ export function update(data: PlatformConfig) { * 平台配置 */ export interface PlatformConfig extends BaseEntity { - // 网关地址 + // 网关服务地址 gatewayServiceUrl?: string + // 网关移动端是否为嵌入式 + mobileEmbedded?: boolean + // 网关移动端地址 + gatewayMobileUrl?: string + // 网关PC端是否为嵌入式 + pcEmbedded?: boolean + // 网关PC端地址 + gatewayPcUrl?: string } diff --git a/src/views/daxpay/admin/config/platform/PlatformConfig.vue b/src/views/daxpay/admin/config/platform/PlatformConfig.vue index 0ddb07a61..7a26d09fb 100644 --- a/src/views/daxpay/admin/config/platform/PlatformConfig.vue +++ b/src/views/daxpay/admin/config/platform/PlatformConfig.vue @@ -19,6 +19,36 @@ placeholder="请输入网关地址" /> + + + + + + + + + + + +
取消 @@ -42,11 +72,12 @@ const { createMessage } = useMessage() const confirmLoading = ref(false) const formRef = ref() - const form = ref({}) + const form = ref({ + mobileEmbedded: false, + pcEmbedded: false, + }) const edit = ref(false) - const rules = { - gatewayServiceUrl: [{ required: true, message: '请输入网关地址' }], - } as Record + const rules = {} as Record onMounted(() => { initData() diff --git a/src/views/daxpay/common/develop/auth/ChannelAuth.api.ts b/src/views/daxpay/common/develop/auth/ChannelAuth.api.ts new file mode 100644 index 000000000..3d6e09c0d --- /dev/null +++ b/src/views/daxpay/common/develop/auth/ChannelAuth.api.ts @@ -0,0 +1,59 @@ +import { defHttp } from '@/utils/http/axios' +import { Result } from '#/axios' +import { MchEntity } from '#/web' + +/** + * 获取授权链接 + */ +export function generateAuthUrl(params: GenerateAuthUrlParam) { + return defHttp.post>({ + url: '/assist/channel/auth/generateAuthUrl', + data: params, + }) +} + +/** + * 通过查询码获取认证结果 + */ +export function queryAuthResult(queryCode) { + return defHttp.get>({ + url: '/assist/channel/auth/queryAuthResult', + params: { + queryCode, + }, + }) +} + +/** + * 授权链接和查询标识返回类 + */ +export interface AuthUrlResult { + // 授权链接 + authUrl?: string + // 查询标识 + queryCode?: boolean +} + +/** + * 生成授权链接参数 + */ +export interface GenerateAuthUrlParam extends MchEntity { + // 通道 + channel?: string + // 自定义授权重定向地址 + authRedirectUrl?: string +} + +/** + * 认证结果 + */ +export interface AuthResult { + // OpenId + openId?: string + // 用户ID + userId?: string + // AccessToken + accessToken?: string + // 状态 + status?: string +} diff --git a/src/views/daxpay/common/develop/auth/ChannelAuth.vue b/src/views/daxpay/common/develop/auth/ChannelAuth.vue new file mode 100644 index 000000000..549c448f2 --- /dev/null +++ b/src/views/daxpay/common/develop/auth/ChannelAuth.vue @@ -0,0 +1,189 @@ + + + + diff --git a/src/views/daxpay/common/develop/DevelopTrade.api.ts b/src/views/daxpay/common/develop/trade/DevelopTrade.api.ts similarity index 100% rename from src/views/daxpay/common/develop/DevelopTrade.api.ts rename to src/views/daxpay/common/develop/trade/DevelopTrade.api.ts diff --git a/src/views/daxpay/common/develop/DevelopTrade.vue b/src/views/daxpay/common/develop/trade/DevelopTrade.vue similarity index 100% rename from src/views/daxpay/common/develop/DevelopTrade.vue rename to src/views/daxpay/common/develop/trade/DevelopTrade.vue diff --git a/src/views/daxpay/common/develop/DevelopTradePay.vue b/src/views/daxpay/common/develop/trade/DevelopTradePay.vue similarity index 100% rename from src/views/daxpay/common/develop/DevelopTradePay.vue rename to src/views/daxpay/common/develop/trade/DevelopTradePay.vue diff --git a/src/views/daxpay/common/develop/DevelopTradeRefund.vue b/src/views/daxpay/common/develop/trade/DevelopTradeRefund.vue similarity index 100% rename from src/views/daxpay/common/develop/DevelopTradeRefund.vue rename to src/views/daxpay/common/develop/trade/DevelopTradeRefund.vue diff --git a/src/views/daxpay/common/develop/DevelopTradeTransfer.vue b/src/views/daxpay/common/develop/trade/DevelopTradeTransfer.vue similarity index 100% rename from src/views/daxpay/common/develop/DevelopTradeTransfer.vue rename to src/views/daxpay/common/develop/trade/DevelopTradeTransfer.vue diff --git a/src/views/daxpay/common/reconcile/statement/ReconcileStatementCreate.vue b/src/views/daxpay/common/reconcile/statement/ReconcileStatementCreate.vue index 5f4effb05..31e4b0df0 100644 --- a/src/views/daxpay/common/reconcile/statement/ReconcileStatementCreate.vue +++ b/src/views/daxpay/common/reconcile/statement/ReconcileStatementCreate.vue @@ -122,7 +122,6 @@ // 商户 merchantDropdown().then(({ data }) => { merchantList.value = data - console.log(merchantList) }) } diff --git a/types/web.d.ts b/types/web.d.ts index f0a0a6f36..15c07ada9 100644 --- a/types/web.d.ts +++ b/types/web.d.ts @@ -34,7 +34,9 @@ export interface BaseEntity { * 商户应用基础实体对象 */ export interface MchEntity extends BaseEntity { + // 商户号 mchNo?: string + // 应用号 appId?: string }