From c3bc348f132dd2c8a169ed2cf0ee7052ced89fac Mon Sep 17 00:00:00 2001 From: DaxPay Dev Date: Tue, 21 Jul 2026 15:42:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(callback):=20=E5=9B=9E=E8=B0=83=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=88=97=E8=A1=A8=E9=A1=B5=E4=B8=8E=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=8F=9C=E5=8D=95=20i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 运营端新增通道入站回调记录查询页,同步权限码与多语种菜单标题。 Co-authored-by: Cursor --- .../api/payment/record/callback-record.api.ts | 43 +++ apps/daxpay-admin/src/constants/perm-codes.ts | 3 + .../en-US/payment/record/callbackRecord.json | 18 ++ .../id-ID/payment/record/callbackRecord.json | 18 ++ .../ja-JP/payment/record/callbackRecord.json | 18 ++ .../ko-KR/payment/record/callbackRecord.json | 18 ++ .../ms-MY/payment/record/callbackRecord.json | 18 ++ .../th-TH/payment/record/callbackRecord.json | 18 ++ .../vi-VN/payment/record/callbackRecord.json | 18 ++ .../zh-CN/payment/record/callbackRecord.json | 18 ++ .../zh-HK/payment/record/callbackRecord.json | 18 ++ .../zh-TW/payment/record/callbackRecord.json | 18 ++ .../src/locales/menu-titles/en-US.json | 4 +- .../src/locales/menu-titles/id-ID.json | 4 +- .../src/locales/menu-titles/ja-JP.json | 4 +- .../src/locales/menu-titles/ko-KR.json | 4 +- .../src/locales/menu-titles/ms-MY.json | 4 +- .../src/locales/menu-titles/th-TH.json | 4 +- .../src/locales/menu-titles/vi-VN.json | 4 +- .../src/locales/menu-titles/zh-CN.json | 4 +- .../src/locales/menu-titles/zh-HK.json | 4 +- .../src/locales/menu-titles/zh-TW.json | 4 +- .../payment/record/PayCallbackRecordList.vue | 265 ++++++++++++++++++ 23 files changed, 521 insertions(+), 10 deletions(-) create mode 100644 apps/daxpay-admin/src/api/payment/record/callback-record.api.ts create mode 100644 apps/daxpay-admin/src/locales/langs/en-US/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/id-ID/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/ja-JP/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/ko-KR/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/ms-MY/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/th-TH/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/vi-VN/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/zh-CN/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/zh-HK/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/locales/langs/zh-TW/payment/record/callbackRecord.json create mode 100644 apps/daxpay-admin/src/views/payment/record/PayCallbackRecordList.vue diff --git a/apps/daxpay-admin/src/api/payment/record/callback-record.api.ts b/apps/daxpay-admin/src/api/payment/record/callback-record.api.ts new file mode 100644 index 000000000..0eca33658 --- /dev/null +++ b/apps/daxpay-admin/src/api/payment/record/callback-record.api.ts @@ -0,0 +1,43 @@ +import type { MchEntity, PageResult, Result } from '#/types/web'; + +import { defHttp } from '#/api/request'; + +/** + * 通道入站回调记录管理 API + */ +export const PayCallbackRecordApi = { + /** 回调记录分页 */ + page(params: PayCallbackRecordQuery & { current?: number; size?: number }): Promise>> { + return defHttp.get({ url: '/admin/callback-record/page', params }); + }, + + /** 回调记录详情 */ + getById(id: string): Promise> { + return defHttp.get({ url: '/admin/callback-record/get-by-id', params: { id } }); + }, +}; + +/** 回调记录查询 */ +export interface PayCallbackRecordQuery { + mchNo?: string; + appId?: string; + channelMchNo?: string; + tradeNo?: string; + outTradeNo?: string; + channel?: string; + callbackType?: string; + status?: string; +} + +/** 回调记录结果 */ +export interface PayCallbackRecordResult extends MchEntity { + appId?: string; + channelMchNo?: string; + tradeNo?: string; + outTradeNo?: string; + channel?: string; + callbackType?: string; + notifyInfo?: string; + status?: string; + errorMsg?: string; +} diff --git a/apps/daxpay-admin/src/constants/perm-codes.ts b/apps/daxpay-admin/src/constants/perm-codes.ts index 1b7e296a0..39055f009 100644 --- a/apps/daxpay-admin/src/constants/perm-codes.ts +++ b/apps/daxpay-admin/src/constants/perm-codes.ts @@ -189,6 +189,9 @@ export const PermCodes = { VIEW: 'trade:mch-notice:view', MANAGE: 'trade:mch-notice:manage', }, + CallbackRecord: { + VIEW: 'trade:callback-record:view', + }, }, Develop: { diff --git a/apps/daxpay-admin/src/locales/langs/en-US/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/en-US/payment/record/callbackRecord.json new file mode 100644 index 000000000..1274fed8d --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/en-US/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "Callback Records", + "tradeNo": "Trade No.", + "outTradeNo": "Channel Trade No.", + "channel": "Channel", + "callbackType": "Callback Type", + "status": "Status", + "errorMsg": "Error", + "notifyInfo": "Notify Payload", + "createTime": "Notify Time", + "placeholderTradeNo": "Enter trade no.", + "placeholderOutTradeNo": "Enter channel trade no.", + "typePay": "Pay", + "typeRefund": "Refund", + "detail": "Callback Detail", + "channelMchNo": "Channel Merchant No.", + "placeholderChannelMchNo": "Enter channel merchant no." +} diff --git a/apps/daxpay-admin/src/locales/langs/id-ID/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/id-ID/payment/record/callbackRecord.json new file mode 100644 index 000000000..12560f3aa --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/id-ID/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "Catatan Callback", + "tradeNo": "No. Transaksi", + "outTradeNo": "No. Transaksi Channel", + "channel": "Channel", + "callbackType": "Jenis Callback", + "status": "Status", + "errorMsg": "Kesalahan", + "notifyInfo": "Payload Notifikasi", + "createTime": "Waktu Notifikasi", + "placeholderTradeNo": "Masukkan no. transaksi", + "placeholderOutTradeNo": "Masukkan no. transaksi channel", + "typePay": "Bayar", + "typeRefund": "Refund", + "detail": "Detail Callback", + "channelMchNo": "No. Pedagang Saluran", + "placeholderChannelMchNo": "Masukkan no. pedagang saluran" +} diff --git a/apps/daxpay-admin/src/locales/langs/ja-JP/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/ja-JP/payment/record/callbackRecord.json new file mode 100644 index 000000000..db566dfa3 --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/ja-JP/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "コールバック記録", + "tradeNo": "取引番号", + "outTradeNo": "チャネル取引番号", + "channel": "決済チャネル", + "callbackType": "コールバック種別", + "status": "処理状態", + "errorMsg": "エラー情報", + "notifyInfo": "通知ペイロード", + "createTime": "通知日時", + "placeholderTradeNo": "取引番号を入力", + "placeholderOutTradeNo": "チャネル取引番号を入力", + "typePay": "支払", + "typeRefund": "返金", + "detail": "コールバック詳細", + "channelMchNo": "チャネル加盟店番号", + "placeholderChannelMchNo": "チャネル加盟店番号を入力" +} diff --git a/apps/daxpay-admin/src/locales/langs/ko-KR/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/ko-KR/payment/record/callbackRecord.json new file mode 100644 index 000000000..1d3b5705d --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/ko-KR/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "콜백 기록", + "tradeNo": "거래번호", + "outTradeNo": "채널 거래번호", + "channel": "결제 채널", + "callbackType": "콜백 유형", + "status": "처리 상태", + "errorMsg": "오류 정보", + "notifyInfo": "알림 페이로드", + "createTime": "알림 시간", + "placeholderTradeNo": "거래번호 입력", + "placeholderOutTradeNo": "채널 거래번호 입력", + "typePay": "결제", + "typeRefund": "환불", + "detail": "콜백 상세", + "channelMchNo": "채널 가맹점번호", + "placeholderChannelMchNo": "채널 가맹점번호 입력" +} diff --git a/apps/daxpay-admin/src/locales/langs/ms-MY/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/ms-MY/payment/record/callbackRecord.json new file mode 100644 index 000000000..6f67a02a1 --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/ms-MY/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "Rekod Callback", + "tradeNo": "No. Dagangan", + "outTradeNo": "No. Dagangan Saluran", + "channel": "Saluran", + "callbackType": "Jenis Callback", + "status": "Status", + "errorMsg": "Ralat", + "notifyInfo": "Payload Pemberitahuan", + "createTime": "Masa Pemberitahuan", + "placeholderTradeNo": "Masukkan no. dagangan", + "placeholderOutTradeNo": "Masukkan no. dagangan saluran", + "typePay": "Bayar", + "typeRefund": "Bayaran Balik", + "detail": "Butiran Callback", + "channelMchNo": "No. Pedagang Saluran", + "placeholderChannelMchNo": "Masukkan no. pedagang saluran" +} diff --git a/apps/daxpay-admin/src/locales/langs/th-TH/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/th-TH/payment/record/callbackRecord.json new file mode 100644 index 000000000..65d4c354d --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/th-TH/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "บันทึกการเรียกกลับ", + "tradeNo": "หมายเลขธุรกรรม", + "outTradeNo": "หมายเลขธุรกรรมช่องทาง", + "channel": "ช่องทางชำระเงิน", + "callbackType": "ประเภทการเรียกกลับ", + "status": "สถานะ", + "errorMsg": "ข้อผิดพลาด", + "notifyInfo": "เพย์โหลดการแจ้งเตือน", + "createTime": "เวลาแจ้งเตือน", + "placeholderTradeNo": "กรอกหมายเลขธุรกรรม", + "placeholderOutTradeNo": "กรอกหมายเลขธุรกรรมช่องทาง", + "typePay": "ชำระเงิน", + "typeRefund": "คืนเงิน", + "detail": "รายละเอียดการเรียกกลับ", + "channelMchNo": "รหัสร้านค้าช่องทาง", + "placeholderChannelMchNo": "กรอกรหัสร้านค้าช่องทาง" +} diff --git a/apps/daxpay-admin/src/locales/langs/vi-VN/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/vi-VN/payment/record/callbackRecord.json new file mode 100644 index 000000000..616921ec7 --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/vi-VN/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "Bản ghi callback", + "tradeNo": "Mã giao dịch", + "outTradeNo": "Mã giao dịch kênh", + "channel": "Kênh thanh toán", + "callbackType": "Loại callback", + "status": "Trạng thái", + "errorMsg": "Lỗi", + "notifyInfo": "Payload thông báo", + "createTime": "Thời gian thông báo", + "placeholderTradeNo": "Nhập mã giao dịch", + "placeholderOutTradeNo": "Nhập mã giao dịch kênh", + "typePay": "Thanh toán", + "typeRefund": "Hoàn tiền", + "detail": "Chi tiết callback", + "channelMchNo": "Mã merchant kênh", + "placeholderChannelMchNo": "Nhập mã merchant kênh" +} diff --git a/apps/daxpay-admin/src/locales/langs/zh-CN/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/zh-CN/payment/record/callbackRecord.json new file mode 100644 index 000000000..30f67f37f --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/zh-CN/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "回调记录", + "tradeNo": "交易号", + "outTradeNo": "通道交易号", + "channel": "支付通道", + "callbackType": "回调类型", + "status": "处理状态", + "errorMsg": "错误信息", + "notifyInfo": "通知报文", + "createTime": "通知时间", + "placeholderTradeNo": "请输入交易号", + "placeholderOutTradeNo": "请输入通道交易号", + "typePay": "支付", + "typeRefund": "退款", + "detail": "回调详情", + "channelMchNo": "通道商户号", + "placeholderChannelMchNo": "请输入通道商户号" +} diff --git a/apps/daxpay-admin/src/locales/langs/zh-HK/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/zh-HK/payment/record/callbackRecord.json new file mode 100644 index 000000000..fb0b8d944 --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/zh-HK/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "回調記錄", + "tradeNo": "交易號", + "outTradeNo": "通道交易號", + "channel": "支付通道", + "callbackType": "回調類型", + "status": "處理狀態", + "errorMsg": "錯誤資訊", + "notifyInfo": "通知報文", + "createTime": "通知時間", + "placeholderTradeNo": "請輸入交易號", + "placeholderOutTradeNo": "請輸入通道交易號", + "typePay": "支付", + "typeRefund": "退款", + "detail": "回調詳情", + "channelMchNo": "通道商戶號", + "placeholderChannelMchNo": "請輸入通道商戶號" +} diff --git a/apps/daxpay-admin/src/locales/langs/zh-TW/payment/record/callbackRecord.json b/apps/daxpay-admin/src/locales/langs/zh-TW/payment/record/callbackRecord.json new file mode 100644 index 000000000..fb0b8d944 --- /dev/null +++ b/apps/daxpay-admin/src/locales/langs/zh-TW/payment/record/callbackRecord.json @@ -0,0 +1,18 @@ +{ + "title": "回調記錄", + "tradeNo": "交易號", + "outTradeNo": "通道交易號", + "channel": "支付通道", + "callbackType": "回調類型", + "status": "處理狀態", + "errorMsg": "錯誤資訊", + "notifyInfo": "通知報文", + "createTime": "通知時間", + "placeholderTradeNo": "請輸入交易號", + "placeholderOutTradeNo": "請輸入通道交易號", + "typePay": "支付", + "typeRefund": "退款", + "detail": "回調詳情", + "channelMchNo": "通道商戶號", + "placeholderChannelMchNo": "請輸入通道商戶號" +} diff --git a/apps/daxpay-admin/src/locales/menu-titles/en-US.json b/apps/daxpay-admin/src/locales/menu-titles/en-US.json index eedf3064a..1179e9095 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/en-US.json +++ b/apps/daxpay-admin/src/locales/menu-titles/en-US.json @@ -95,5 +95,7 @@ "menu.system.security.system": "System Security", "menu.system.security.pay": "Pay Security", "menu.payment.merchant.terminal": "System Terminals", - "menu.device.terminal.channel": "Channel Terminals" + "menu.device.terminal.channel": "Channel Terminals", + "menu.trade.callbackRecord": "Callback Records", + "menu.trade.record": "Trade Records" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/id-ID.json b/apps/daxpay-admin/src/locales/menu-titles/id-ID.json index 093a8df54..be5bd6f3b 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/id-ID.json +++ b/apps/daxpay-admin/src/locales/menu-titles/id-ID.json @@ -95,5 +95,7 @@ "menu.system.security.pay": "Keamanan Pembayaran", "menu.payment.merchant.terminal": "Terminal Sistem", "menu.device.terminal.channel": "Terminal Saluran", - "menu.trade.mchNotice": "Notifikasi Merchant" + "menu.trade.mchNotice": "Notifikasi Merchant", + "menu.trade.callbackRecord": "Catatan Callback", + "menu.trade.record": "Catatan Transaksi" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/ja-JP.json b/apps/daxpay-admin/src/locales/menu-titles/ja-JP.json index 8a7bf5200..795a9f3b5 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/ja-JP.json +++ b/apps/daxpay-admin/src/locales/menu-titles/ja-JP.json @@ -95,5 +95,7 @@ "menu.system.security.pay": "決済セキュリティ", "menu.payment.merchant.terminal": "システム端末", "menu.device.terminal.channel": "チャネル端末", - "menu.trade.mchNotice": "加盟店通知" + "menu.trade.mchNotice": "加盟店通知", + "menu.trade.callbackRecord": "コールバック記録", + "menu.trade.record": "取引記録" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/ko-KR.json b/apps/daxpay-admin/src/locales/menu-titles/ko-KR.json index 7f282301b..d8029e33f 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/ko-KR.json +++ b/apps/daxpay-admin/src/locales/menu-titles/ko-KR.json @@ -95,5 +95,7 @@ "menu.system.security.pay": "결제 보안", "menu.payment.merchant.terminal": "시스템 단말", "menu.device.terminal.channel": "채널 단말", - "menu.trade.mchNotice": "가맹점 알림" + "menu.trade.mchNotice": "가맹점 알림", + "menu.trade.callbackRecord": "콜백 기록", + "menu.trade.record": "거래 기록" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/ms-MY.json b/apps/daxpay-admin/src/locales/menu-titles/ms-MY.json index 9e0ddea7f..681899882 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/ms-MY.json +++ b/apps/daxpay-admin/src/locales/menu-titles/ms-MY.json @@ -95,5 +95,7 @@ "menu.system.security.pay": "Keselamatan Pembayaran", "menu.payment.merchant.terminal": "Terminal Sistem", "menu.device.terminal.channel": "Terminal Saluran", - "menu.trade.mchNotice": "Notis Pedagang" + "menu.trade.mchNotice": "Notis Pedagang", + "menu.trade.callbackRecord": "Rekod Callback", + "menu.trade.record": "Rekod Dagangan" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/th-TH.json b/apps/daxpay-admin/src/locales/menu-titles/th-TH.json index 261a2e122..8c798a533 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/th-TH.json +++ b/apps/daxpay-admin/src/locales/menu-titles/th-TH.json @@ -95,5 +95,7 @@ "menu.system.security.pay": "ความปลอดภัยการชำระเงิน", "menu.payment.merchant.terminal": "เทอร์มินัลระบบ", "menu.device.terminal.channel": "เทอร์มินัลช่องทาง", - "menu.trade.mchNotice": "การแจ้งเตือนร้านค้า" + "menu.trade.mchNotice": "การแจ้งเตือนร้านค้า", + "menu.trade.callbackRecord": "บันทึกการเรียกกลับ", + "menu.trade.record": "บันทึกธุรกรรม" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/vi-VN.json b/apps/daxpay-admin/src/locales/menu-titles/vi-VN.json index ccdfc874a..df21e0196 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/vi-VN.json +++ b/apps/daxpay-admin/src/locales/menu-titles/vi-VN.json @@ -95,5 +95,7 @@ "menu.system.security.pay": "Bảo mật thanh toán", "menu.payment.merchant.terminal": "Thiết bị hệ thống", "menu.device.terminal.channel": "Thiết bị kênh", - "menu.trade.mchNotice": "Thông báo merchant" + "menu.trade.mchNotice": "Thông báo merchant", + "menu.trade.callbackRecord": "Bản ghi callback", + "menu.trade.record": "Nhật ký giao dịch" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/zh-CN.json b/apps/daxpay-admin/src/locales/menu-titles/zh-CN.json index 906b7b2f7..234b736d7 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/zh-CN.json +++ b/apps/daxpay-admin/src/locales/menu-titles/zh-CN.json @@ -95,5 +95,7 @@ "menu.system.security.system": "系统安全配置", "menu.system.security.pay": "支付安全配置", "menu.payment.merchant.terminal": "系统终端", - "menu.device.terminal.channel": "通道终端" + "menu.device.terminal.channel": "通道终端", + "menu.trade.callbackRecord": "回调记录", + "menu.trade.record": "交易记录" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/zh-HK.json b/apps/daxpay-admin/src/locales/menu-titles/zh-HK.json index 1bf6747fe..816c97e95 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/zh-HK.json +++ b/apps/daxpay-admin/src/locales/menu-titles/zh-HK.json @@ -95,5 +95,7 @@ "menu.system.security.pay": "支付安全配置", "menu.payment.merchant.terminal": "系統終端", "menu.device.terminal.channel": "通道終端", - "menu.trade.mchNotice": "商戶通知" + "menu.trade.mchNotice": "商戶通知", + "menu.trade.callbackRecord": "回調記錄", + "menu.trade.record": "交易記錄" } diff --git a/apps/daxpay-admin/src/locales/menu-titles/zh-TW.json b/apps/daxpay-admin/src/locales/menu-titles/zh-TW.json index be6c6cab7..72984c4b4 100644 --- a/apps/daxpay-admin/src/locales/menu-titles/zh-TW.json +++ b/apps/daxpay-admin/src/locales/menu-titles/zh-TW.json @@ -95,5 +95,7 @@ "menu.system.security.pay": "支付安全配置", "menu.payment.merchant.terminal": "系統終端", "menu.device.terminal.channel": "通道終端", - "menu.trade.mchNotice": "商戶通知" + "menu.trade.mchNotice": "商戶通知", + "menu.trade.callbackRecord": "回調記錄", + "menu.trade.record": "交易記錄" } diff --git a/apps/daxpay-admin/src/views/payment/record/PayCallbackRecordList.vue b/apps/daxpay-admin/src/views/payment/record/PayCallbackRecordList.vue new file mode 100644 index 000000000..3f0b23586 --- /dev/null +++ b/apps/daxpay-admin/src/views/payment/record/PayCallbackRecordList.vue @@ -0,0 +1,265 @@ + + +