Skip to content

Commit be978f2

Browse files
authored
Merge pull request #53 from DevDengChao/fix/wx-pay-channels
fix: 修复无法配置微信原生支付与网站支付的问题
2 parents 663c8b3 + 7883e31 commit be978f2

File tree

3 files changed

+63
-159
lines changed

3 files changed

+63
-159
lines changed

src/utils/constants.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,14 @@ export const PayChannelEnum = {
109109
code: 'wx_app',
110110
name: '微信 APP 支付'
111111
},
112+
WX_NATIVE: {
113+
code: 'wx_native',
114+
name: '微信 Native 支付'
115+
},
116+
WX_WAP: {
117+
code: 'wx_wap',
118+
name: '微信 WAP 网站支付'
119+
},
112120
WX_BAR: {
113121
code: 'wx_bar',
114122
name: '微信条码支付'

src/views/pay/app/components/channel/WeixinChannelForm.vue

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@
8080
:http-request="keyContentUpload"
8181
>
8282
<el-button type="primary">
83-
<Icon icon="ep:upload" class="mr-5px" /> 点击上传
83+
<Icon icon="ep:upload" class="mr-5px" />
84+
点击上传
8485
</el-button>
8586
</el-upload>
8687
</el-form-item>
@@ -120,7 +121,8 @@
120121
:http-request="privateKeyContentUpload"
121122
>
122123
<el-button type="primary">
123-
<Icon icon="ep:upload" class="mr-5px" /> 点击上传
124+
<Icon icon="ep:upload" class="mr-5px" />
125+
点击上传
124126
</el-button>
125127
</el-upload>
126128
</el-form-item>
@@ -148,7 +150,8 @@
148150
:http-request="privateCertContentUpload"
149151
>
150152
<el-button type="primary">
151-
<Icon icon="ep:upload" class="mr-5px" /> 点击上传
153+
<Icon icon="ep:upload" class="mr-5px" />
154+
点击上传
152155
</el-button>
153156
</el-upload>
154157
</el-form-item>
@@ -310,7 +313,7 @@ const pemFileBeforeUpload = (file) => {
310313
/**
311314
* 读取 apiclient_key.pem 到 privateKeyContent 字段
312315
*/
313-
const privateKeyContentUpload = (event) => {
316+
const privateKeyContentUpload = async (event) => {
314317
const readFile = new FileReader()
315318
readFile.onload = (e: any) => {
316319
formData.value.config.privateKeyContent = e.target.result
@@ -321,7 +324,7 @@ const privateKeyContentUpload = (event) => {
321324
/**
322325
* 读取 apiclient_cert.pem 到 privateCertContent 字段
323326
*/
324-
const privateCertContentUpload = (event) => {
327+
const privateCertContentUpload = async (event) => {
325328
const readFile = new FileReader()
326329
readFile.onload = (e: any) => {
327330
formData.value.config.privateCertContent = e.target.result
@@ -332,7 +335,7 @@ const privateCertContentUpload = (event) => {
332335
/**
333336
* 读取 apiclient_cert.p12 到 keyContent 字段
334337
*/
335-
const keyContentUpload = (event) => {
338+
const keyContentUpload = async (event) => {
336339
const readFile = new FileReader()
337340
readFile.onload = (e: any) => {
338341
formData.value.config.keyContent = e.target.result.split(',')[1]

src/views/pay/app/index.vue

Lines changed: 46 additions & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,17 @@
4545
/>
4646
</el-form-item>
4747
<el-form-item>
48-
<el-button @click="handleQuery"> <Icon icon="ep:search" class="mr-5px" />搜索 </el-button>
49-
<el-button @click="resetQuery"> <Icon icon="ep:refresh" class="mr-5px" />重置 </el-button>
48+
<el-button @click="handleQuery">
49+
<Icon icon="ep:search" class="mr-5px" />
50+
搜索
51+
</el-button>
52+
<el-button @click="resetQuery">
53+
<Icon icon="ep:refresh" class="mr-5px" />
54+
重置
55+
</el-button>
5056
<el-button type="primary" plain @click="openForm('create')" v-hasPermi="['pay:app:create']">
51-
<Icon icon="ep:plus" class="mr-5px" /> 新增
57+
<Icon icon="ep:plus" class="mr-5px" />
58+
新增
5259
</el-button>
5360
</el-form-item>
5461
</el-form>
@@ -70,183 +77,53 @@
7077
</template>
7178
</el-table-column>
7279
<el-table-column label="支付宝配置" align="center">
73-
<el-table-column :label="PayChannelEnum.ALIPAY_APP.name" align="center">
74-
<template #default="scope">
75-
<el-button
76-
type="success"
77-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.ALIPAY_APP.code)"
78-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_APP.code)"
79-
circle
80-
>
81-
<Icon icon="ep:check" />
82-
</el-button>
83-
<el-button
84-
v-else
85-
type="danger"
86-
circle
87-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_APP.code)"
88-
>
89-
<Icon icon="ep:close" />
90-
</el-button>
91-
</template>
92-
</el-table-column>
93-
<el-table-column :label="PayChannelEnum.ALIPAY_PC.name" align="center">
94-
<template #default="scope">
95-
<el-button
96-
type="success"
97-
circle
98-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.ALIPAY_PC.code)"
99-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_PC.code)"
100-
>
101-
<Icon icon="ep:check" />
102-
</el-button>
103-
<el-button
104-
v-else
105-
type="danger"
106-
circle
107-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_PC.code)"
108-
>
109-
<Icon icon="ep:close" />
110-
</el-button>
111-
</template>
112-
</el-table-column>
113-
<el-table-column :label="PayChannelEnum.ALIPAY_WAP.name" align="center">
114-
<template #default="scope">
115-
<el-button
116-
type="success"
117-
circle
118-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.ALIPAY_WAP.code)"
119-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_WAP.code)"
120-
>
121-
<Icon icon="ep:check" />
122-
</el-button>
123-
<el-button
124-
v-else
125-
type="danger"
126-
circle
127-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_WAP.code)"
128-
>
129-
<Icon icon="ep:close" />
130-
</el-button>
131-
</template>
132-
</el-table-column>
133-
<el-table-column :label="PayChannelEnum.ALIPAY_QR.name" align="center">
134-
<template #default="scope">
135-
<el-button
136-
type="success"
137-
circle
138-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.ALIPAY_QR.code)"
139-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_QR.code)"
140-
>
141-
<Icon icon="ep:check" />
142-
</el-button>
143-
<el-button
144-
v-else
145-
type="danger"
146-
circle
147-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_QR.code)"
148-
>
149-
<Icon icon="ep:close" />
150-
</el-button>
151-
</template>
152-
</el-table-column>
153-
<el-table-column :label="PayChannelEnum.ALIPAY_BAR.name" align="center">
80+
<el-table-column
81+
:label="channel.name"
82+
align="center"
83+
v-for="channel in alipayChannels"
84+
:key="channel.code"
85+
>
15486
<template #default="scope">
15587
<el-button
15688
type="success"
89+
v-if="isChannelExists(scope.row.channelCodes, channel.code)"
90+
@click="openChannelForm(scope.row, channel.code)"
15791
circle
158-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.ALIPAY_BAR.code)"
159-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_BAR.code)"
16092
>
16193
<Icon icon="ep:check" />
16294
</el-button>
16395
<el-button
16496
v-else
16597
type="danger"
16698
circle
167-
@click="openChannelForm(scope.row, PayChannelEnum.ALIPAY_BAR.code)"
99+
@click="openChannelForm(scope.row, channel.code)"
168100
>
169101
<Icon icon="ep:close" />
170102
</el-button>
171103
</template>
172104
</el-table-column>
173105
</el-table-column>
174106
<el-table-column label="微信配置" align="center">
175-
<el-table-column :label="PayChannelEnum.WX_LITE.name" align="center">
176-
<template #default="scope">
177-
<el-button
178-
type="success"
179-
circle
180-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.WX_LITE.code)"
181-
@click="openChannelForm(scope.row, PayChannelEnum.WX_LITE.code)"
182-
>
183-
<Icon icon="ep:check" />
184-
</el-button>
185-
<el-button
186-
v-else
187-
type="danger"
188-
circle
189-
@click="openChannelForm(scope.row, PayChannelEnum.WX_LITE.code)"
190-
>
191-
<Icon icon="ep:close" />
192-
</el-button>
193-
</template>
194-
</el-table-column>
195-
<el-table-column :label="PayChannelEnum.WX_PUB.name" align="center">
196-
<template #default="scope">
197-
<el-button
198-
type="success"
199-
circle
200-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.WX_PUB.code)"
201-
@click="openChannelForm(scope.row, PayChannelEnum.WX_PUB.code)"
202-
>
203-
<Icon icon="ep:check" />
204-
</el-button>
205-
<el-button
206-
v-else
207-
type="danger"
208-
circle
209-
@click="openChannelForm(scope.row, PayChannelEnum.WX_PUB.code)"
210-
>
211-
<Icon icon="ep:close" />
212-
</el-button>
213-
</template>
214-
</el-table-column>
215-
<el-table-column :label="PayChannelEnum.WX_APP.name" align="center">
216-
<template #default="scope">
217-
<el-button
218-
type="success"
219-
circle
220-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.WX_APP.code)"
221-
@click="openChannelForm(scope.row, PayChannelEnum.WX_APP.code)"
222-
>
223-
<Icon icon="ep:check" />
224-
</el-button>
225-
<el-button
226-
v-else
227-
type="danger"
228-
circle
229-
@click="openChannelForm(scope.row, PayChannelEnum.WX_APP.code)"
230-
>
231-
<Icon icon="ep:close" />
232-
</el-button>
233-
</template>
234-
</el-table-column>
235-
<el-table-column :label="PayChannelEnum.WX_BAR.name" align="center">
107+
<el-table-column
108+
:label="channel.name"
109+
align="center"
110+
v-for="channel in wxChannels"
111+
:key="channel.code"
112+
>
236113
<template #default="scope">
237114
<el-button
238115
type="success"
116+
v-if="isChannelExists(scope.row.channelCodes, channel.code)"
117+
@click="openChannelForm(scope.row, channel.code)"
239118
circle
240-
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.WX_BAR.code)"
241-
@click="openChannelForm(scope.row, PayChannelEnum.WX_BAR.code)"
242119
>
243120
<Icon icon="ep:check" />
244121
</el-button>
245122
<el-button
246123
v-else
247124
type="danger"
248125
circle
249-
@click="openChannelForm(scope.row, PayChannelEnum.WX_BAR.code)"
126+
@click="openChannelForm(scope.row, channel.code)"
250127
>
251128
<Icon icon="ep:close" />
252129
</el-button>
@@ -338,12 +215,11 @@
338215
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
339216
import * as AppApi from '@/api/pay/app'
340217
import AppForm from './components/AppForm.vue'
341-
import { PayChannelEnum } from '@/utils/constants'
218+
import { CommonStatusEnum, PayChannelEnum } from '@/utils/constants'
342219
import AlipayChannelForm from './components/channel/AlipayChannelForm.vue'
343220
import WeixinChannelForm from './components/channel/WeixinChannelForm.vue'
344221
import MockChannelForm from './components/channel/MockChannelForm.vue'
345222
import WalletChannelForm from './components/channel/WalletChannelForm.vue'
346-
import { CommonStatusEnum } from '@/utils/constants'
347223
348224
defineOptions({ name: 'PayApp' })
349225
@@ -365,6 +241,23 @@ const queryParams = reactive({
365241
})
366242
const queryFormRef = ref() // 搜索的表单
367243
244+
const alipayChannels = [
245+
PayChannelEnum.ALIPAY_APP,
246+
PayChannelEnum.ALIPAY_PC,
247+
PayChannelEnum.ALIPAY_WAP,
248+
PayChannelEnum.ALIPAY_QR,
249+
PayChannelEnum.ALIPAY_BAR
250+
]
251+
252+
const wxChannels = [
253+
PayChannelEnum.WX_LITE,
254+
PayChannelEnum.WX_PUB,
255+
PayChannelEnum.WX_APP,
256+
PayChannelEnum.WX_NATIVE,
257+
PayChannelEnum.WX_WAP,
258+
PayChannelEnum.WX_BAR,
259+
]
260+
368261
/** 查询列表 */
369262
const getList = async () => {
370263
loading.value = true

0 commit comments

Comments
 (0)