From 6551777535a4c8841ae3604af87a08911d2ac4ae Mon Sep 17 00:00:00 2001 From: DaxPay Dev Date: Wed, 15 Jul 2026 11:05:09 +0800 Subject: [PATCH] =?UTF-8?q?refactor(pay):=20=E4=BB=98=E6=AC=BE=E7=A0=81?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=BB=9F=E4=B8=80=E4=B8=BA=20authCode=20?= =?UTF-8?q?=E5=B9=B6=E6=8B=86=E5=88=86=20OAuth=20=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 落库/查询 barCode 对齐 unipay 入参 authCode,DB 列 bar_code 迁移为 auth_code;validation 拆出 oauthCode 避免与付款码混用。 --- _config/sql/update-tables.sql | 3 +++ .../service/trade/PayTradeAdminService.java | 2 ++ .../trade/order/entity/GatewayPayOrder.java | 2 +- .../trade/order/entity/NormalPayOrder.java | 2 +- .../trade/order/result/PayTradeResult.java | 2 +- .../runtime/service/pay/NormalPayService.java | 2 +- .../runtime/service/pay/PayAssistService.java | 2 +- .../unipay/param/assist/AuthCodeParam.java | 6 ++--- .../main/resources/i18n/en-US/validation.json | 20 ++++++--------- .../main/resources/i18n/id-ID/validation.json | 8 ++++-- .../main/resources/i18n/ja-JP/validation.json | 8 ++++-- .../main/resources/i18n/ko-KR/validation.json | 8 ++++-- .../main/resources/i18n/ms-MY/validation.json | 8 ++++-- .../main/resources/i18n/th-TH/validation.json | 8 ++++-- .../main/resources/i18n/vi-VN/validation.json | 8 ++++-- .../main/resources/i18n/zh-CN/validation.json | 25 ++++++------------- .../main/resources/i18n/zh-HK/validation.json | 6 ++++- .../main/resources/i18n/zh-TW/validation.json | 6 ++++- 18 files changed, 74 insertions(+), 52 deletions(-) diff --git a/_config/sql/update-tables.sql b/_config/sql/update-tables.sql index e69de29bb..1598c1ee2 100644 --- a/_config/sql/update-tables.sql +++ b/_config/sql/update-tables.sql @@ -0,0 +1,3 @@ +-- 付款码列:bar_code → auth_code(与 unipay 入参 authCode 对齐) +ALTER TABLE pay_normal_order RENAME COLUMN bar_code TO auth_code; +COMMENT ON COLUMN pay_normal_order.auth_code IS '付款码(被扫支付,审计保留)'; diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/service/trade/PayTradeAdminService.java b/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/service/trade/PayTradeAdminService.java index 85a9a57e7..85f864c5e 100644 --- a/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/service/trade/PayTradeAdminService.java +++ b/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/service/trade/PayTradeAdminService.java @@ -63,6 +63,8 @@ public class PayTradeAdminService { result.setMethod(normalOrder.getMethod()); result.setChannelAppId(normalOrder.getChannelAppId()); result.setBuyerId(normalOrder.getBuyerId()); + result.setOpenid(normalOrder.getOpenid()); + result.setAuthCode(normalOrder.getAuthCode()); result.setTradeProduct(normalOrder.getTradeProduct()); result.setTradeWay(normalOrder.getTradeWay()); result.setBankType(normalOrder.getBankType()); diff --git a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/entity/GatewayPayOrder.java b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/entity/GatewayPayOrder.java index 68d2d4238..dc568dee1 100644 --- a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/entity/GatewayPayOrder.java +++ b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/entity/GatewayPayOrder.java @@ -93,7 +93,7 @@ public class GatewayPayOrder extends MchBaseEntity { /// @see ProductEnum private String product; - // ===== 支付请求参数(支付时写入,审计保留;网关无被扫,不承载 barCode)===== + // ===== 支付请求参数(支付时写入,审计保留;网关无被扫,不承载 authCode)===== /// 微信 openid(jsapi/app/miniapp) private String openid; diff --git a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/entity/NormalPayOrder.java b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/entity/NormalPayOrder.java index 36a6104f1..6423a288d 100644 --- a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/entity/NormalPayOrder.java +++ b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/entity/NormalPayOrder.java @@ -92,7 +92,7 @@ public class NormalPayOrder extends MchBaseEntity { private String openid; /// 付款码(被扫支付,终态后仍保留供审计) - private String barCode; + private String authCode; // ===== 时间线(冗余,查询展示用)===== diff --git a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/result/PayTradeResult.java b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/result/PayTradeResult.java index 5e4d30a05..761bbe6c8 100644 --- a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/result/PayTradeResult.java +++ b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/order/result/PayTradeResult.java @@ -137,7 +137,7 @@ public class PayTradeResult extends BaseResult { /// 付款码(被扫支付) @Schema(description = "付款码") - private String barCode; + private String authCode; /// 活动类型 @Schema(description = "活动类型") diff --git a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/NormalPayService.java b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/NormalPayService.java index 3e486f330..6b69cca6b 100644 --- a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/NormalPayService.java +++ b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/NormalPayService.java @@ -61,7 +61,7 @@ public class NormalPayService { var mchApp = merchantContextLoader.resolveApp(payParam.getMchNo(), payParam.getAppId()); payParam.setAppId(mchApp.getAppId()); // 付款码: 有 authCode 且 method 空时按前缀识别并回填分钱包 method, 再走路由 - resolveBarcodeMethodIfNeeded(payParam); + this.resolveBarcodeMethodIfNeeded(payParam); // 路由解析:直接指定(已传 channelMchNo)优先,否则按 appId+method 跟随通道路由匹配 payRouteService.resolve(payParam); var payStrategy = PaymentStrategyFactory.createByProduct(payParam.getProduct(), AbsNormalPayStrategy.class); diff --git a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/PayAssistService.java b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/PayAssistService.java index ce4a92821..0f58c3b01 100644 --- a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/PayAssistService.java +++ b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/PayAssistService.java @@ -78,7 +78,7 @@ public class PayAssistService { normalOrder.setLimitPay(payParam.getLimitPay() != null ? String.join(",", payParam.getLimitPay()) : null); normalOrder.setOpenid(payParam.getOpenId()); - normalOrder.setBarCode(payParam.getAuthCode()); + normalOrder.setAuthCode(payParam.getAuthCode()); normalOrder.setProduct(payParam.getProduct()); normalOrder.setExtraParam(payParam.getExtraParam()); normalOrder.setGoodsDetail(payParam.getGoodsDetail()); diff --git a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/unipay/param/assist/AuthCodeParam.java b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/unipay/param/assist/AuthCodeParam.java index 6b98195eb..9ee4cc19b 100644 --- a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/unipay/param/assist/AuthCodeParam.java +++ b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/unipay/param/assist/AuthCodeParam.java @@ -26,9 +26,9 @@ public class AuthCodeParam extends MerchantPaymentCommonParam { @Schema(description = "认证类型") private String authType; - /// 三方通道可以直接获取到OpeId, 可以写入这个至 - @Schema(description = "标识码/") - @NotBlank(message = "{validation.field.authCode.notBlank}") + /// 三方通道 OAuth 授权码(换 openId/userId); 亦可直接写入已拿到的 openId + @Schema(description = "授权码") + @NotBlank(message = "{validation.field.oauthCode.notBlank}") private String authCode; /// 三方通道可以直接获取到这个值 diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/validation.json index 98729bab3..a1bc4a55f 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/validation.json @@ -40,7 +40,7 @@ "notBlank": "App private key cannot be blank" }, "appSecret": { - "notBlank": "App secret cannot be blank" + "size": "App secret cannot exceed 512 characters" }, "douyinMchId": { "notBlank": "Douyin merchant ID cannot be blank" @@ -137,7 +137,6 @@ "pass": { "notNull": "Audit result cannot be blank" }, - "channelMerchantNo": { "notBlank": "Channel merchant no. cannot be blank" }, @@ -183,8 +182,8 @@ "notNull": "File type cannot be blank" }, "authCode": { - "notBlank": "Auth code cannot be blank", - "size": "Auth code cannot exceed 128 characters" + "notBlank": "Payment code cannot be blank", + "size": "Payment code cannot exceed 128 characters" }, "clientIp": { "size": "Client IP cannot exceed 64 characters" @@ -379,9 +378,6 @@ "roleId": { "notNull": "Role ID cannot be blank" }, - "clientCode": { - "notBlank": "Client code cannot be blank" - }, "code": { "notBlank": "Code cannot be blank" }, @@ -585,9 +581,6 @@ "wechatIsvMchAppId": { "notNull": "WeChat ISV channel merchant app ID cannot be blank" }, - "appSecret": { - "size": "App secret cannot exceed 512 characters" - }, "storeName": { "notBlank": "Store name cannot be blank" }, @@ -622,9 +615,6 @@ "ids": { "notEmpty": "Please select QR code boards" }, - "configName": { - "notBlank": "Config name cannot be blank" - }, "twoFactorCode": { "notBlank": "Verification code cannot be blank" }, @@ -749,6 +739,10 @@ }, "fileContent": { "notBlank": "File content cannot be blank" + }, + "oauthCode": { + "notBlank": "Authorization code cannot be blank", + "size": "Authorization code cannot exceed 128 characters" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/id-ID/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/id-ID/validation.json index 5577e92fd..72510f69e 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/id-ID/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/id-ID/validation.json @@ -182,8 +182,8 @@ "notNull": "Jenis file tidak boleh kosong" }, "authCode": { - "notBlank": "Kode autentikasi tidak boleh kosong", - "size": "Kode autentikasi tidak boleh melebihi 128 karakter" + "notBlank": "Kode pembayaran tidak boleh kosong", + "size": "Kode pembayaran tidak boleh melebihi 128 karakter" }, "clientIp": { "size": "IP klien tidak boleh melebihi 64 karakter" @@ -739,6 +739,10 @@ }, "fileContent": { "notBlank": "Konten file tidak boleh kosong" + }, + "oauthCode": { + "notBlank": "Kode otorisasi tidak boleh kosong", + "size": "Kode otorisasi tidak boleh melebihi 128 karakter" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ja-JP/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ja-JP/validation.json index 5075229e5..e251db8ff 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ja-JP/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ja-JP/validation.json @@ -182,8 +182,8 @@ "notNull": "ファイルタイプを空白にすることはできません" }, "authCode": { - "notBlank": "認証コードを空白にすることはできません", - "size": "認証コードは 128 文字を超えることはできません" + "notBlank": "支払いコードは必須です", + "size": "支払いコードは128文字以内で入力してください" }, "clientIp": { "size": "クライアント IP は 64 文字を超えることはできません" @@ -739,6 +739,10 @@ }, "fileContent": { "notBlank": "ファイルの内容を空白にすることはできません" + }, + "oauthCode": { + "notBlank": "認証コードは必須です", + "size": "認証コードは128文字以内で入力してください" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ko-KR/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ko-KR/validation.json index d4e4fe6e4..10ef90e69 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ko-KR/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ko-KR/validation.json @@ -182,8 +182,8 @@ "notNull": "파일 형식은 비워둘 수 없습니다." }, "authCode": { - "notBlank": "인증 코드는 비워둘 수 없습니다.", - "size": "인증 코드는 128자를 초과할 수 없습니다." + "notBlank": "결제 코드는 필수입니다", + "size": "결제 코드는 128자를 초과할 수 없습니다" }, "clientIp": { "size": "클라이언트 IP는 64자를 초과할 수 없습니다." @@ -739,6 +739,10 @@ }, "fileContent": { "notBlank": "파일 콘텐츠는 비워둘 수 없습니다." + }, + "oauthCode": { + "notBlank": "인증 코드는 필수입니다", + "size": "인증 코드는 128자를 초과할 수 없습니다" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ms-MY/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ms-MY/validation.json index c6aaa9fe5..572ae126c 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ms-MY/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ms-MY/validation.json @@ -182,8 +182,8 @@ "notNull": "Jenis fail tidak boleh kosong" }, "authCode": { - "notBlank": "Kod pengesahan tidak boleh kosong", - "size": "Kod pengesahan tidak boleh melebihi 128 aksara" + "notBlank": "Kod pembayaran tidak boleh kosong", + "size": "Kod pembayaran tidak boleh melebihi 128 aksara" }, "clientIp": { "size": "IP pelanggan tidak boleh melebihi 64 aksara" @@ -739,6 +739,10 @@ }, "fileContent": { "notBlank": "Kandungan fail tidak boleh kosong" + }, + "oauthCode": { + "notBlank": "Kod kebenaran tidak boleh kosong", + "size": "Kod kebenaran tidak boleh melebihi 128 aksara" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/th-TH/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/th-TH/validation.json index 134285f42..6a96e3e1c 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/th-TH/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/th-TH/validation.json @@ -182,8 +182,8 @@ "notNull": "ประเภทไฟล์ต้องไม่เว้นว่าง" }, "authCode": { - "notBlank": "รหัสรับรองความถูกต้องไม่สามารถเว้นว่างได้", - "size": "รหัสรับรองความถูกต้องต้องมีความยาวไม่เกิน 128 ตัวอักษร" + "notBlank": "รหัสชำระเงินต้องไม่เว้นว่าง", + "size": "รหัสชำระเงินต้องไม่เกิน 128 ตัวอักษร" }, "clientIp": { "size": "IP ไคลเอ็นต์ต้องมีความยาวไม่เกิน 64 อักขระ" @@ -739,6 +739,10 @@ }, "fileContent": { "notBlank": "เนื้อหาไฟล์ต้องไม่เว้นว่าง" + }, + "oauthCode": { + "notBlank": "รหัสอนุญาตต้องไม่เว้นว่าง", + "size": "รหัสอนุญาตต้องไม่เกิน 128 ตัวอักษร" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/vi-VN/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/vi-VN/validation.json index ec76c3b17..8e9552f92 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/vi-VN/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/vi-VN/validation.json @@ -182,8 +182,8 @@ "notNull": "Loại tệp không được để trống" }, "authCode": { - "notBlank": "Mã xác thực không được để trống", - "size": "Mã xác thực không được vượt quá 128 ký tự" + "notBlank": "Mã thanh toán không được để trống", + "size": "Mã thanh toán không được vượt quá 128 ký tự" }, "clientIp": { "size": "IP khách hàng không thể vượt quá 64 ký tự" @@ -739,6 +739,10 @@ }, "fileContent": { "notBlank": "Nội dung tập tin không được để trống" + }, + "oauthCode": { + "notBlank": "Mã ủy quyền không được để trống", + "size": "Mã ủy quyền không được vượt quá 128 ký tự" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/validation.json index 71d118895..c3155bf0c 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/validation.json @@ -19,7 +19,7 @@ "notBlank": "Client Key不能为空" }, "clientCode": { - "notBlank": "终端不能为空" + "notBlank": "终端编码不可为空" }, "ip": { "notValid": "IP地址不合法" @@ -40,7 +40,7 @@ "notBlank": "应用私钥不可为空" }, "appSecret": { - "notBlank": "应用密钥不可为空" + "size": "应用密钥不可超过512位" }, "douyinMchId": { "notBlank": "抖音商户号不可为空" @@ -102,7 +102,7 @@ "notBlank": "微信商户Id不可为空" }, "wxAppId": { - "notBlank": "微信应用appId不可为空" + "notBlank": "微信应用AppId不可为空" }, "publicKeyId": { "notBlank": "支付公钥ID不可为空" @@ -137,7 +137,6 @@ "pass": { "notNull": "审核结果不可为空" }, - "channelMerchantNo": { "notBlank": "通道商户号不可为空" }, @@ -183,7 +182,7 @@ "notNull": "文件类型不能为空" }, "authCode": { - "notBlank": "标识码不可为空", + "notBlank": "付款码不可为空", "size": "付款码不可超过128位" }, "clientIp": { @@ -360,9 +359,6 @@ "authAppType": { "notBlank": "认证应用类型不可为空" }, - "wxAppId": { - "notBlank": "微信应用AppId不可为空" - }, "mchName": { "notBlank": "商户名称不可为空" }, @@ -382,9 +378,6 @@ "roleId": { "notNull": "角色ID不可为空" }, - "clientCode": { - "notBlank": "终端编码不可为空" - }, "code": { "notBlank": "编码不可为空" }, @@ -588,9 +581,6 @@ "wechatIsvMchAppId": { "notNull": "微信服务商通道商户应用ID不可为空" }, - "appSecret": { - "size": "应用密钥不可超过512位" - }, "storeName": { "notBlank": "门店名称不能为空" }, @@ -625,9 +615,6 @@ "ids": { "notEmpty": "请选择码牌" }, - "configName": { - "notBlank": "配置名称不能为空" - }, "twoFactorCode": { "notBlank": "动态验证码不能为空" }, @@ -752,6 +739,10 @@ }, "fileContent": { "notBlank": "文件内容不能为空" + }, + "oauthCode": { + "notBlank": "授权码不可为空", + "size": "授权码不可超过128位" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-HK/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-HK/validation.json index 8900979d8..645f2ae7d 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-HK/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-HK/validation.json @@ -182,7 +182,7 @@ "notNull": "文件類型不能為空" }, "authCode": { - "notBlank": "標識碼不可為空", + "notBlank": "付款碼不可為空", "size": "付款碼不可超過128位" }, "clientIp": { @@ -739,6 +739,10 @@ }, "fileContent": { "notBlank": "文件內容不能為空" + }, + "oauthCode": { + "notBlank": "授權碼不可為空", + "size": "授權碼不可超過128位" } } } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-TW/validation.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-TW/validation.json index eba6c2668..0633a08cb 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-TW/validation.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-TW/validation.json @@ -182,7 +182,7 @@ "notNull": "檔案型別不能為空" }, "authCode": { - "notBlank": "標識碼不可為空", + "notBlank": "付款碼不可為空", "size": "付款碼不可超過128位" }, "clientIp": { @@ -739,6 +739,10 @@ }, "fileContent": { "notBlank": "檔案內容不能為空" + }, + "oauthCode": { + "notBlank": "授權碼不可為空", + "size": "授權碼不可超過128位" } } }