diff --git a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/gateway/AggregatePayService.java b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/gateway/AggregatePayService.java index 11332e9a1..30fcbdeca 100644 --- a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/gateway/AggregatePayService.java +++ b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/gateway/AggregatePayService.java @@ -39,7 +39,7 @@ public class AggregatePayService { private final GatewayAggregateConfigManager aggregateConfigManager; /// 风控检查器(可选 SPI:用于判断是否存在 openId 黑名单, 决定是否触发强制 OAuth) private final ObjectProvider payRiskCheckerProvider; - /// 平台安全配置(读取 openId 拦截级别, 决定 NORMAL 模式下不触发强制 OAuth) + /// 平台安全配置(读取用户标识拦截级别, 决定 NORMAL 模式下不触发强制 OAuth) private final PlatformSecurityConfigService platformSecurityConfigService; /// H5 聚合元数据: autoLaunch / needOpenId(不下发敏感路由字段) @@ -83,9 +83,9 @@ public class AggregatePayService { /// openId 触发判定 /// /// 1. JSAPI/MINI 类方式: 业务必需, 永远 true(与历史行为一致) - /// 2. 主扫/H5 等免 openId 方式: 仅当 openId 拦截级别为 ENHANCED, - /// 且存在 openId 黑名单, 且当前 clientEnv 可 OAuth 时 true, - /// 实现 openId 黑名单在聚合网关内的全局拦截 + /// 2. 主扫/H5 等免用户标识方式: 仅当用户标识拦截级别为 ENHANCED, + /// 且存在用户标识黑名单, 且当前 clientEnv 可 OAuth 时 true, + /// 实现用户标识黑名单在聚合网关内的全局拦截 private boolean resolveNeedOpenId(String method, ClientEnvEnum clientEnv) { if (PayMethodOpenIdSupport.needsOpenId(method)) { return true; @@ -97,7 +97,7 @@ public class AggregatePayService { return PayMethodOpenIdSupport.canAcquireOpenId(method, clientEnv); } - /// openId 拦截级别是否为增强模式(NORMAL 时跳过强制 OAuth, 保留用户体验) + /// 用户标识拦截级别是否为增强模式(NORMAL 时跳过强制 OAuth, 保留用户体验) private boolean isEnhancedOpenIdLevel() { String level = platformSecurityConfigService.getPaySecurityConfig().getRiskOpenIdLevel(); return PayRiskOpenIdLevelEnum.ENHANCED.getCode().equals(level); diff --git a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/gateway/CashierPayService.java b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/gateway/CashierPayService.java index 3829b3c24..4c3727da2 100644 --- a/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/gateway/CashierPayService.java +++ b/daxpay-payment/daxpay-payment-core/src/main/java/cn/daxpay/open/payment/trade/runtime/service/pay/gateway/CashierPayService.java @@ -50,7 +50,7 @@ public class CashierPayService { private final GatewayCashierItemManager gatewayCashierItemManager; /// 风控检查器(可选 SPI:用于判断是否存在 openId 黑名单, 决定是否触发强制 OAuth) private final ObjectProvider payRiskCheckerProvider; - /// 平台安全配置(读取 openId 拦截级别, 决定 NORMAL 模式下不触发强制 OAuth) + /// 平台安全配置(读取用户标识拦截级别, 决定 NORMAL 模式下不触发强制 OAuth) private final PlatformSecurityConfigService platformSecurityConfigService; /// 公开支付项列表(落地页展示) @@ -172,8 +172,8 @@ public class CashierPayService { /// openId 触发判定(与聚合/码牌同源逻辑) /// /// 1. JSAPI/MINI 类方式: 业务必需, 永远 true - /// 2. 主扫/H5 等免 openId 方式: 仅当 openId 拦截级别为 ENHANCED, - /// 且存在 openId 黑名单且当前 clientEnv 可 OAuth 时 true + /// 2. 主扫/H5 等免用户标识方式: 仅当用户标识拦截级别为 ENHANCED, + /// 且存在用户标识黑名单且当前 clientEnv 可 OAuth 时 true private boolean resolveItemNeedOpenId(String method, ClientEnvEnum clientEnv) { if (PayMethodOpenIdSupport.needsOpenId(method)) { return true; @@ -185,7 +185,7 @@ public class CashierPayService { return PayMethodOpenIdSupport.canAcquireOpenId(method, clientEnv); } - /// openId 拦截级别是否为增强模式(NORMAL 时跳过强制 OAuth, 保留用户体验) + /// 用户标识拦截级别是否为增强模式(NORMAL 时跳过强制 OAuth, 保留用户体验) private boolean isEnhancedOpenIdLevel() { String level = platformSecurityConfigService.getPaySecurityConfig().getRiskOpenIdLevel(); return PayRiskOpenIdLevelEnum.ENHANCED.getCode().equals(level); diff --git a/daxpay-payment/daxpay-payment-unipay/src/main/java/cn/daxpay/open/payment/unipay/client/service/CodePayAssistService.java b/daxpay-payment/daxpay-payment-unipay/src/main/java/cn/daxpay/open/payment/unipay/client/service/CodePayAssistService.java index 06aa2c64f..5e1baf0ec 100644 --- a/daxpay-payment/daxpay-payment-unipay/src/main/java/cn/daxpay/open/payment/unipay/client/service/CodePayAssistService.java +++ b/daxpay-payment/daxpay-payment-unipay/src/main/java/cn/daxpay/open/payment/unipay/client/service/CodePayAssistService.java @@ -66,7 +66,7 @@ public class CodePayAssistService { private final NormalPayOrderManager normalPayOrderManager; /// 风控检查器(可选 SPI:用于判断是否存在 openId 黑名单, 决定是否触发强制 OAuth) private final ObjectProvider payRiskCheckerProvider; - /// 平台安全配置(读取 openId 拦截级别, 决定 NORMAL 模式下不触发强制 OAuth) + /// 平台安全配置(读取用户标识拦截级别, 决定 NORMAL 模式下不触发强制 OAuth) private final PlatformSecurityConfigService platformSecurityConfigService; /// 根据码牌编码查询支付信息(公开接口, 脱敏返回) @@ -272,9 +272,9 @@ public class CodePayAssistService { /// openId 触发判定 /// /// 1. JSAPI/MINI 类方式: 业务必需, 永远 true(与历史行为一致) - /// 2. 主扫/H5 等免 openId 方式: 仅当 openId 拦截级别为 ENHANCED, - /// 且存在 openId 黑名单且当前 clientEnv 可 OAuth 时 true, - /// 实现 openId 黑名单在码牌场景的全局拦截 + /// 2. 主扫/H5 等免用户标识方式: 仅当用户标识拦截级别为 ENHANCED, + /// 且存在用户标识黑名单且当前 clientEnv 可 OAuth 时 true, + /// 实现用户标识黑名单在码牌场景的全局拦截 private boolean resolveNeedOpenId(String method, ClientEnvEnum clientEnv) { if (PayMethodOpenIdSupport.needsOpenId(method)) { return true; @@ -286,7 +286,7 @@ public class CodePayAssistService { return PayMethodOpenIdSupport.canAcquireOpenId(method, clientEnv); } - /// openId 拦截级别是否为增强模式(NORMAL 时跳过强制 OAuth, 保留用户体验) + /// 用户标识拦截级别是否为增强模式(NORMAL 时跳过强制 OAuth, 保留用户体验) private boolean isEnhancedOpenIdLevel() { String level = platformSecurityConfigService.getPaySecurityConfig().getRiskOpenIdLevel(); return PayRiskOpenIdLevelEnum.ENHANCED.getCode().equals(level); 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 0e732953e..822fbbe9e 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 @@ -792,7 +792,7 @@ "notNull": "Post-pay logging toggle cannot be empty" }, "riskOpenIdLevel": { - "notNull": "openId interception level cannot be empty" + "notNull": "User identifier interception level cannot be empty" }, "blockOverseasIp": { "notNull": "Overseas IP block toggle cannot be empty" 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 5b414fa5c..70db936db 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 @@ -799,7 +799,7 @@ "notNull": "Pilihan pemeriksaan setelah pembayaran wajib diisi" }, "riskOpenIdLevel": { - "notNull": "Level intercept openId tidak boleh kosong" + "notNull": "Level intersepsi identifier pengguna tidak boleh kosong" }, "blockOverseasIp": { "notNull": "Saklar blokir IP luar negeri tidak boleh kosong" 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 61efab04f..875f319e6 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 @@ -792,7 +792,7 @@ "notNull": "決済後記録スイッチは必須です" }, "riskOpenIdLevel": { - "notNull": "openId ブロック レベルは必須です" + "notNull": "ユーザー識別子ブロック レベルは必須です" }, "blockOverseasIp": { "notNull": "海外 IP ブロック スイッチは必須です" 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 3ebaee25c..dd301bef9 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 @@ -792,7 +792,7 @@ "notNull": "결제 후 기록 스위치는 필수입니다" }, "riskOpenIdLevel": { - "notNull": "openId 차단 레벨은 필수입니다" + "notNull": "사용자 식별자 차단 레벨은 필수입니다" }, "blockOverseasIp": { "notNull": "해외 IP 차단 스위치는 필수입니다" 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 833bca02b..8000043be 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 @@ -799,7 +799,7 @@ "notNull": "Pilihan semakan selepas pembayaran tidak boleh kosong" }, "riskOpenIdLevel": { - "notNull": "Tahap sekatan openId tidak boleh kosong" + "notNull": "Tahap sekatan pengecam pengguna tidak boleh kosong" }, "blockOverseasIp": { "notNull": "Suis sekatan IP luar negara tidak boleh kosong" 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 f91e63964..8c61b0119 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 @@ -799,7 +799,7 @@ "notNull": "ตัวเลือกการตรวจสอบหลังชำระเงินต้องไม่เป็นค่าว่าง" }, "riskOpenIdLevel": { - "notNull": "ระดับการบล็อก openId ต้องไม่ว่าง" + "notNull": "ระดับการบล็อกตัวระบุผู้ใช้ต้องไม่ว่าง" }, "blockOverseasIp": { "notNull": "สวิตช์บล็อก IP ต่างประเทศต้องไม่ว่าง" 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 7fd189ec2..c77141587 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 @@ -799,7 +799,7 @@ "notNull": "Tùy chọn kiểm tra sau thanh toán là bắt buộc" }, "riskOpenIdLevel": { - "notNull": "Cấp độ chặn openId không được để trống" + "notNull": "Cấp độ chặn mã định danh người dùng không được để trống" }, "blockOverseasIp": { "notNull": "Công tắc chặn IP nước ngoài không được để trống" 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 6a2243270..68321463d 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 @@ -792,7 +792,7 @@ "notNull": "事后补录开关不能为空" }, "riskOpenIdLevel": { - "notNull": "openId 拦截级别不能为空" + "notNull": "用户标识拦截级别不能为空" }, "blockOverseasIp": { "notNull": "海外 IP 拦截开关不能为空" 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 f3b681664..af39a9ac3 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 @@ -792,7 +792,7 @@ "notNull": "事後補錄開關不能為空" }, "riskOpenIdLevel": { - "notNull": "openId 攔截級別不能為空" + "notNull": "使用者識別碼攔截級別不能為空" }, "blockOverseasIp": { "notNull": "海外 IP 攔截開關不能為空" 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 7bc255636..f7df951e0 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 @@ -792,7 +792,7 @@ "notNull": "事後補錄開關不能為空" }, "riskOpenIdLevel": { - "notNull": "openId 攔截級別不能為空" + "notNull": "使用者識別碼攔截級別不能為空" }, "blockOverseasIp": { "notNull": "海外 IP 攔截開關不能為空" diff --git a/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/entity/config/platform/security/PlatformPaySecurityConfig.java b/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/entity/config/platform/security/PlatformPaySecurityConfig.java index c93c24301..e41506f62 100644 --- a/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/entity/config/platform/security/PlatformPaySecurityConfig.java +++ b/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/entity/config/platform/security/PlatformPaySecurityConfig.java @@ -13,7 +13,7 @@ import lombok.experimental.Accessors; /// - 风控总开关: 关闭后支付主链路跳过所有风控检查 /// - 命中阻断: 支付前命中黑名单是否拒绝下单(关闭则仅记录不拦截) /// - 事后补录: 支付成功后是否补充记录命中(用于事后分析,不阻断资金态) -/// - openId 拦截级别: 是否对 H5 / 主扫等免 openId 方式强制 OAuth, 见 [PayRiskOpenIdLevelEnum] +/// - 用户标识拦截级别: 是否对 H5 / 主扫等免用户标识方式强制 OAuth, 见 [PayRiskOpenIdLevelEnum] /// - 海外 IP 拦截: 占位字段, 后续接入 IP 地理位置库后实现 @Data @Accessors(chain = true) @@ -28,7 +28,7 @@ public class PlatformPaySecurityConfig { /// 支付成功后是否补录命中(用于事后分析) private Boolean riskCheckAfterPay = Boolean.TRUE; - /// openId 拦截级别(默认增强拦截, 保持历史行为) + /// 用户标识拦截级别(默认增强拦截, 保持历史行为) /// @see PayRiskOpenIdLevelEnum private String riskOpenIdLevel = PayRiskOpenIdLevelEnum.ENHANCED.getCode(); diff --git a/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/enums/PayRiskOpenIdLevelEnum.java b/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/enums/PayRiskOpenIdLevelEnum.java index c5466aba6..4a19f1f35 100644 --- a/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/enums/PayRiskOpenIdLevelEnum.java +++ b/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/enums/PayRiskOpenIdLevelEnum.java @@ -7,20 +7,20 @@ import lombok.RequiredArgsConstructor; import java.util.Arrays; import java.util.Optional; -/// # openId 拦截级别 +/// # 用户标识拦截级别 /// -/// 控制 openId 黑名单对「原本免 openId 支付方式(H5 / 主扫)」是否触发强制 OAuth。 -/// JSAPI / 小程序原生方式业务本身就要 openId, 不受此开关影响。 +/// 控制用户标识黑名单(微信 openId / 支付宝 userId 等)对「原本免用户标识支付方式(H5 / 主扫)」 +/// 是否触发强制 OAuth。JSAPI / 小程序原生方式业务本身就要用户标识, 不受此开关影响。 /// /// - [NORMAL]: 仅做 IP + 事后补录, 不为风控额外触发 OAuth(保留用户体验) -/// - [ENHANCED]: 存在 openId 名单时, 对 H5 / 主扫等可 OAuth 方式强制静默授权 +/// - [ENHANCED]: 存在用户标识名单时, 对 H5 / 主扫等可 OAuth 方式强制静默授权 @Getter @RequiredArgsConstructor public enum PayRiskOpenIdLevelEnum implements I18nSupport { /// 正常拦截(仅 IP + 事后补录) NORMAL("normal"), - /// 增强拦截(对 H5 / 主扫强制 OAuth) + /// 增强拦截(对 H5 / 主扫强制 OAuth 取用户标识) ENHANCED("enhanced"); private final String code; diff --git a/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/param/config/security/PlatformPaySecurityConfigParam.java b/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/param/config/security/PlatformPaySecurityConfigParam.java index 146f25b33..3def45c7d 100644 --- a/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/param/config/security/PlatformPaySecurityConfigParam.java +++ b/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/param/config/security/PlatformPaySecurityConfigParam.java @@ -24,7 +24,7 @@ public class PlatformPaySecurityConfigParam { @NotNull(message = "{validation.field.riskCheckAfterPay.notNull}") private Boolean riskCheckAfterPay; - @Schema(description = "openId 拦截级别(normal=正常拦截 / enhanced=增强拦截)") + @Schema(description = "用户标识拦截级别(normal=正常拦截 / enhanced=增强拦截)") @NotNull(message = "{validation.field.riskOpenIdLevel.notNull}") private String riskOpenIdLevel; diff --git a/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/result/config/security/PlatformPaySecurityConfigResult.java b/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/result/config/security/PlatformPaySecurityConfigResult.java index c7dcfaa04..28ac51562 100644 --- a/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/result/config/security/PlatformPaySecurityConfigResult.java +++ b/daxpay-platform/daxpay-platform-service/service-system/src/main/java/cn/daxpay/open/platform/system/result/config/security/PlatformPaySecurityConfigResult.java @@ -23,7 +23,7 @@ public class PlatformPaySecurityConfigResult extends BaseResult { @Schema(description = "支付成功后是否补录命中(用于事后分析)") private Boolean riskCheckAfterPay; - @Schema(description = "openId 拦截级别(normal=正常拦截 / enhanced=增强拦截)") + @Schema(description = "用户标识拦截级别(normal=正常拦截 / enhanced=增强拦截)") private String riskOpenIdLevel; @Schema(description = "海外 IP 拦截(占位字段, 默认关闭, 后续接入)")