DaxPay Dev
|
bc4e388dfd
|
feat(merchant): 默认应用/门店策略统一治理(唯一约束/删除阻挡/异常分类)
- 数据库加部分唯一索引 uk_mch_app_info_default / uk_mch_store_info_default 兜底
- Service.delete 检查默认项, 禁止删除默认应用/门店
- MchAppInfoService.add 首应用自动默认, 与 MchStoreInfoService 对齐
- resolveApp 异常分类: 默认应用不存在 vs 已停用 vs 指定应用异常
- resolveStoreNo 改抛异常 (替代返回 null), 与 resolveApp 策略对齐
- update-datas.sql 提供脏数据/缺默认项诊断查询
- 6 语种 i18n 新增 5 个错误 key
|
2026-07-18 23:56:22 +08:00 |
|
DaxPay Dev
|
957f956dd8
|
feat(device): 码牌支持绑定门店与应用、下单回落默认门店
- 码牌实体/查询/结果新增 storeNo/storeName 字段
- 码牌批量绑定/解绑门店、批量绑定/解绑应用接口(须同商户)
- 绑商户参数支持可选门店, 解绑商户同步清空应用与门店
- 运营/商户/小程序三端门店新增设为/取消默认门店接口
- 网关/普通下单 storeNo 空时回落商户默认门店
- validation.json 全语种补 storeNo.notBlank 文案
|
2026-07-18 10:32:33 +08:00 |
|
DaxPay Dev
|
f3c78a7a8d
|
feat(merchant): 创建商户时自动初始化默认应用与默认门店
运营端新增与自注册商户后,统一创建启用态默认应用与默认门店,避免支付/码牌等流程因缺少默认应用卡住。名称按请求语言经 i18n 生成,并补充门店 default_store 字段与管理能力。
|
2026-07-17 22:59:52 +08:00 |
|
DaxPay Dev
|
d53b310df2
|
feat(code-pay): method 判定 needOpenId,DIRECT 按能力反推 method
|
2026-07-17 22:48:25 +08:00 |
|
DaxPay Dev
|
624a44711b
|
feat(code-pay): 公开码牌信息接口返回商户简称供 H5 展示
|
2026-07-17 19:53:36 +08:00 |
|
DaxPay Dev
|
7d55e385ce
|
refactor(refund): 退款单模型重命名并对齐 trade 关联字段
将 PayRefundOrder 统一为 RefundOrder,运行时服务/参数同步改名;
表结构按 trade_no、trade_type、relation_order_no 对齐实体;
退款回调支持 refundNo/relationOrderNo/outRefundNo 反查;
管理端抽取 TradeOrderDetailAssembler,各通道退款策略同步适配。
|
2026-07-17 18:42:52 +08:00 |
|
DaxPay Dev
|
ad36fe93f7
|
feat(audit): 统一支付接口审计日志与公共参数 reqId
开放 API 公共参数增加必填 reqId 并响应回显;在验签切面异步记录调用审计(mchNo+reqId 索引),不落 appId/业务单号列;运营端日志管理增加支付接口日志菜单与查询能力。
|
2026-07-17 17:38:15 +08:00 |
|
DaxPay Dev
|
23ffda2c24
|
fix(translate): 实体翻译改 selectList 避免 mchName 回填失败
selectMaps 按列名取 Map 在部分环境下 key 不一致会静默得到空映射,
改为 selectList 后按 Java 属性反射取值,保证 mchNo→mchName 等 @Trans 正常回填。
|
2026-07-17 17:35:26 +08:00 |
|
DaxPay Dev
|
eb5e44a145
|
fix(i18n): 东盟四语 pay.error 补全 gateway/risk 本地化文案
将 id/ms/th/vi 中与 en-US 相同的英文占位译为当地语言,并补齐 refund.gatewayNotSupported。
|
2026-07-17 13:46:47 +08:00 |
|
DaxPay Dev
|
e7b64b8efb
|
fix(i18n): 补充 pay.error.payOrderNotExist 与 updateTradeFailed 多语言文案
|
2026-07-17 09:55:21 +08:00 |
|
DaxPay Dev
|
cab9fda318
|
refactor: Nonce 构造器用 Lombok,支付自调用改 @Lazy 自注入
- NonceService/NonceVerificationAspect 改为 @RequiredArgsConstructor
- NormalPay/Gateway 事务自调用由 SpringUtil.getBean 改为 @Lazy self
|
2026-07-17 08:38:10 +08:00 |
|
DaxPay Dev
|
2e2391acc7
|
feat(gateway): 网关/码牌鉴权与开发调试能力增强
补充网关授权 URL、聚合支付元数据、码牌辅助与订单状态查询;运营端 DevelopGateway 调试接口。
|
2026-07-17 08:24:30 +08:00 |
|
DaxPay Dev
|
86b0fa0be2
|
feat(security): 平台安全配置拆分并增强 nonce/防重放
将平台安全配置拆为 API/IAM/支付多份;nonce 校验可配置化;补齐 SQL、权限码与多语 validation/i18n。
|
2026-07-17 08:24:29 +08:00 |
|
DaxPay Dev
|
9d122f6941
|
feat(admin): 列表商户列补 mchName 翻译并统一 Fields 常量
订单/风控/域名验证等 Result 增加 @Trans(mchNo->mchName),source/result 使用 MchBaseResult/MerchantInfo 的 Fields 常量;Service 分页与详情调用 TransService.translate;码牌存量字面量一并修正。
|
2026-07-17 08:16:25 +08:00 |
|
DaxPay Dev
|
75e73355d0
|
refactor(result): 移除冗余的 MchTradeBaseResult 中间基类
MchTradeBaseResult 仅在 MchBaseResult 基础上新增 appId/appName 两个字段,
但其 appId/appName 在所有子类中均未被实际使用: 通道商户子类实体无此字段
(MapStruct 无法填充, 恒为 null), 应用子类则重新声明了自有 appName 并使用
各自通道的 wxAppId, 导致父类字段被遮蔽成为死字段。
将 12 个通道结果子类的父类由 MchTradeBaseResult 改为 MchBaseResult,
并删除 MchTradeBaseResult 类。ChannelMerchantResult 已在上一次提交中
改为继承 MchBaseResult。
|
2026-07-16 20:10:41 +08:00 |
|
DaxPay Dev
|
a8d29cc95a
|
feat(channel): 通道商户 mchName 改用 @Trans 翻译机制
|
2026-07-16 20:05:23 +08:00 |
|
DaxPay Dev
|
37defaad22
|
feat(system): 用户协议版本新建支持继承上一版内容
新增 find-inherit-source 接口,供新建草稿时按同语言已发布或最新归档版本预填内容。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-07-16 14:49:10 +08:00 |
|
DaxPay Dev
|
0d22a53fa6
|
feat: 预置用户协议与隐私政策数据(Web端/中文)
- 用户协议(USER_AGREEMENT)与隐私政策(PRIVACY_POLICY)各一条
- 通用支付平台模板,含 [平台名称] 等占位符
- 版本状态 PUBLISHED + default_protocol=true,findDefault 可直接查询
- 可重复执行(ON CONFLICT DO NOTHING)
|
2026-07-16 13:56:54 +08:00 |
|
DaxPay Dev
|
eba797dd71
|
fix(sensitive-word): 配置缓存改存 JSON 避免 L2 ClassCast
- PlatformSensitiveWordConfig 缓存字符串后 toBean,避开 LinkedHashMap
- MapperScan 补齐;试检命中来源识别 /client/;List 用 getFirst
|
2026-07-16 10:21:44 +08:00 |
|
DaxPay Dev
|
357ee494ee
|
feat(sensitive-word): 新增平台敏感词过滤能力
新增 capability-sensitive-word 模块(词库 CRUD、命中审计、AC 匹配与繁转简规范化),平台配置策略开关,并接入支付标题/商品名与商户应用门店等展示字段校验;同步 DDL、菜单与后端 i18n。
|
2026-07-16 09:08:37 +08:00 |
|
DaxPay Dev
|
477f41ca07
|
feat(cache): 敏感缓存 L2 整包 AES-GCM 加密
将 SecureAesGcmEncryptor 下沉至 common-config 并注册唯一 Bean,与 DB 字段加密共用。secure: 前缀的 cacheName 在 Redis 中整包加密 value;加密未启用时仅 L1 不写 Redis。
|
2026-07-16 08:46:27 +08:00 |
|
DaxPay Dev
|
a42052b821
|
feat(risk): 新增支付风控插件(黑名单与命中记录)
新增 daxpay-plugin-risk 模块,支持黑名单管理、风险命中记录与支付前风控校验;补充表结构/菜单权限及多语言枚举与错误文案。
|
2026-07-15 23:08:19 +08:00 |
|
DaxPay Dev
|
a09ff20f35
|
feat(gateway): 码牌支付策略配置与部分环境保存
独立码牌配置(AUTO/METHOD/DIRECT),METHOD/DIRECT 配多少存多少;运营端
MchBaseEntity 子表 insert 显式 setMchNo,修复 mchContextMissing。
|
2026-07-15 22:16:07 +08:00 |
|
DaxPay Dev
|
694efe088d
|
fix(naming): 统一通道/环境/能力编码与主数据
汇付通道合并为 huifu,抖音通道改为 douyin;ClientEnv 微信改为 wechat;
银联 capability/付款码对齐 union_qr 风格;同步 pay_md 种子、升级 SQL 与多语 enum。
|
2026-07-15 20:53:48 +08:00 |
|
DaxPay Dev
|
b308e367ca
|
feat(cashier): 收银台配置支持小程序场景(mini)
新增 GatewayCashierTypeEnum.MINI,H5/MINI 按 clientEnv 分桶;
小程序开放微信/支付宝/云闪付/抖音四档,不含 browser;WEB 仍扁平无 env。
|
2026-07-15 17:05:46 +08:00 |
|
DaxPay Dev
|
4e780b6860
|
feat(device): 码牌支持 H5/小程序落地类型并精简 MapStruct 映射
新增 QrCodeProgramTypeEnum,扫码链接按类型分流 /h 与 /m;批量创建写入 programType(创建后不可改),并补齐校验与多语 i18n。Convert 改为单源同名映射,资金字段由 Service 补充;清空已落地的 update-tables.sql。
|
2026-07-15 16:48:13 +08:00 |
|
DaxPay Dev
|
55ca3173fc
|
feat(pay): pay_trade 冗余 channelMchNo 与 storeNo
资金凭证增加通道商户号、门店号轻量组织冗余,建单时从容器/路由结果拷贝,便于资金列表与店级汇总免 JOIN;同步 DDL 与查询返回字段,并补齐普通支付门店校验落库。
|
2026-07-15 14:49:40 +08:00 |
|
DaxPay Dev
|
4bde734c0b
|
docs(easypay): 补全易支付插件模块 /// 注释与 Schema 描述
为 param/result/dao/convert/enum/service/util 统一补充类、字段与方法注释,并对齐 @Schema 中文描述,无业务逻辑变更。
|
2026-07-15 14:47:12 +08:00 |
|
DaxPay Dev
|
3bc30cc570
|
refactor(unipay): 将 UniGatewayPayController 迁入 trade.controller
与 UniTrade 等商户签名开放 API 同包,删除空的 gateway 控制器包;对外 /unipay/gateway 路径不变。
|
2026-07-15 14:46:39 +08:00 |
|
DaxPay Dev
|
07e147be4a
|
feat(pay): 码牌支付主链路与订单 source 方案 C
码牌走普通订单(source=cashier_code),通道路由复用聚合配置(ClientEnvPayResolve);
容器 source 权威并冗余到 pay_trade;预留 client runtime(h5/mini)。
同步订单门店 store_no 字段与校验入口。
|
2026-07-15 14:36:02 +08:00 |
|
DaxPay Dev
|
b152ca34c0
|
refactor(pay): 拆分 createOrder 编排并抽取 PROCESSING 资金单初始化
将 NormalPayAssistService#createOrder 拆为 resolveSource/buildNormalOrder/buildPayTrade,
新增 PayTradeInitUtil 作为 normal/gateway 共用的 PROCESSING 态 PayTrade 初始化单一事实源。
|
2026-07-15 14:33:15 +08:00 |
|
DaxPay Dev
|
7a3d1b4f3c
|
chore(release): 统一产品版本为 4.0.0-beta1
将全模块 Maven 版本从 4.0.0-SNAPSHOT 调整为 4.0.0-beta1,并同步 Swagger 版本与文档说明。
|
2026-07-15 14:32:25 +08:00 |
|
DaxPay Dev
|
8260466071
|
feat(easypay): 接入易支付协议插件并打通应用级配置
新增 daxpay-plugin-easypay(V1/V2 API、应用凭证与独立订单),扩展插件支付策略与网关运行时结构;补充菜单/表结构 SQL,平台公钥 Result 去 PEM 便于对接方复制,接口地址尾部保留 /。
|
2026-07-15 12:35:39 +08:00 |
|
DaxPay Dev
|
4b1ddfa950
|
refactor(refund): 退款快照重命名,澄清非二次路由语义
将 RefundRouteContext 重命名为 RefundOrderSnapshot,resolveRoute 改为 loadContainerSnapshot,强调退款继承原支付容器快照、不调用 PayRouteService 选路。
|
2026-07-15 12:11:46 +08:00 |
|
DaxPay Dev
|
6551777535
|
refactor(pay): 付款码字段统一为 authCode 并拆分 OAuth 校验文案
落库/查询 barCode 对齐 unipay 入参 authCode,DB 列 bar_code 迁移为 auth_code;validation 拆出 oauthCode 避免与付款码混用。
|
2026-07-15 11:05:09 +08:00 |
|
DaxPay Dev
|
42b37bd2eb
|
refactor: 收敛路由 Resolver/Matcher 并统一支付分布式锁
删除 ClientEnv/Product/Container Resolver 与 Basic/Scene Matcher,运行时路由内聚到 PayRouteService,单条产品解析归 ChannelMerchantManager,容器字段一次回表读取;配置侧 RouteBatchContext 批预加载保持不变。支付/关单/退款/同步/网关等链路改用 LockExecutor,并清理 update SQL 与相关 i18n。
|
2026-07-14 22:12:57 +08:00 |
|
DaxPay Dev
|
0b643787b1
|
chore: 普通支付单注释精简,开发环境默认开启沙箱
NormalPayOrder 的 @see 改为短链;dev 配置 sandbox-enabled 默认 true 便于本地联调。
|
2026-07-14 21:20:28 +08:00 |
|
DaxPay Dev
|
a06bef0a28
|
refactor(gateway): CashierScene 重命名为 ClientEnv 客户端环境
将聚合扫码与收银台共用的环境识别从收银场景语义改为客户端环境,
避免与支付渠道/沙箱环境混淆。枚举 code 保持不变,同步表名/字段/i18n。
|
2026-07-14 21:17:30 +08:00 |
|
DaxPay Dev
|
abe0a243ea
|
refactor(gateway): 对齐网关业务单与普通支付容器并收敛无用字段
预下单 orderNo 改用 ORD 号段,补齐 extraParam/relationOrderNo 与 Result 字段;
支付回写后 reload 容器避免 payBody 丢失;终态 failed 校验对齐 Normal。
网关不支持线下被扫,删除 terminalNo/barCode 及相关 API 与 DDL 列。
|
2026-07-14 19:13:59 +08:00 |
|
DaxPay Dev
|
2b2d030165
|
refactor(pay): 业务单 orderNo 与资金 tradeNo 分离,收敛订单容器边界
- 独立生成 ORD/PAY 号,默认上送 orderNo,relationOrderNo 落 trade 作反查权威
- payBody 仅落容器,trade 去掉 payBody/expiredTime
- 容器新增 failed 态,失败与关单/超时区分;对外与管理端同时暴露双号
|
2026-07-14 18:47:27 +08:00 |
|
DaxPay Dev
|
43d8cb293d
|
feat(pay): 付款码前缀识别、退款预占结算与订单入账/通道AppId
移除 aggregate_pay_barcode,按 authCode 前缀映射分钱包 method;退款引入预占与失败回滚并支持网关单;订单增加 posted_amount/channel_app_id,opAppId 统一为 channelAppId。
|
2026-07-14 18:38:51 +08:00 |
|
DaxPay Dev
|
8a71d41bcf
|
refactor(auth): 移除未使用的手机号登录方式常量
开源版无短信登录实现,删除 AuthLoginTypeCode.PHONE 预留常量。
|
2026-07-14 16:55:33 +08:00 |
|
DaxPay Dev
|
b13ac01d29
|
refactor(role): 开源版内置角色对齐 admin/merchant 并整理登录校验
新增 RoleCodeEnum.ADMIN_ADMIN 与多语言文案;登录状态校验迁至 common/handler;清空已应用的 update-datas 升级脚本。
|
2026-07-14 15:24:26 +08:00 |
|
DaxPay Dev
|
e869901db2
|
feat(i18n): 新增 id-ID/vi-VN/th-TH/ms-MY 东盟语言包与 locale 别名
覆盖 common-i18n 与 capability 通道错误文案;Accept-Language 短码 id/vi/th/ms 映射到地区资源。
|
2026-07-14 14:34:34 +08:00 |
|
DaxPay Dev
|
af33bee339
|
fix(i18n): IAM 角色分配错误码改为 camelCase messageKey
统一 assignOutOfScope/notExist 等 key,跨终端分配改为可参数化 i18n 消息。
|
2026-07-14 12:52:13 +08:00 |
|
DaxPay Dev
|
db58674ab7
|
feat(notify): 站内通知表结构与 admin 模块依赖
补充 notify 相关升级 DDL,payment-admin 引入 service-notify 以支撑运营端铃铛/SSE。
|
2026-07-14 12:52:12 +08:00 |
|
DaxPay Dev
|
abf731b290
|
refactor(payment): 移除 MerchantAccessPort 接口
调用方直接依赖 MerchantAccessQueryService,去掉多余端口抽象。
|
2026-07-14 12:52:12 +08:00 |
|
DaxPay Dev
|
1bbb801118
|
fix(auth): SSE/异步派发兼容 Sa-Token 上下文
非 REQUEST 派发放行鉴权拦截;SaTokenContextException 在 SSE/异步场景降级不写 JSON body,
避免 EventSource 狂重连。通知 SSE 标注登录即可访问并修正 Cookie 鉴权注释。
|
2026-07-14 12:52:11 +08:00 |
|
DaxPay Dev
|
fd24405027
|
feat(i18n): 新增 ja-JP/ko-KR 日韩语言包与 locale 别名
后端 common-i18n 扩展日语/韩语资源树,Accept-Language 支持 ja/ko 别名;清理未使用的 reconciliationFail 死 key。
|
2026-07-14 12:46:58 +08:00 |
|
DaxPay Dev
|
ef110b3b8b
|
fix(iam): 统一授权树权限码节点 key 按菜单实例去重
同一 menuCode 挂到多个菜单时,权限码 key 改为 code-{codeId}-menu-{menuId},避免 a-tree 重复 key 警告。
|
2026-07-14 12:32:20 +08:00 |
|