Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

oak-pay-business 更新日志

当前 package4.1.0
最新 tag4.0.0
覆盖区间3.5.1..4.0.0 / 4.0.0..HEAD

4.1.0 未发布(区间:4.0.0..HEAD

未发布多支付渠道、金额 Decimal 化和 general-system 适配是重点。
  • 新增 Waffo、Stripe、Epay、Creem、PayPal 支付渠道,并补齐对应的账号实体、产品实体、支付记录实体、配置组件和 endpoint。
  • 新增微信、支付宝、Epay、Stripe、Creem、Waffo、PayPal 回调模块;当前 src/endpoints/index.ts 默认导出空对象,项目必须按实际启用渠道显式注入,依赖包不会自动暴露全部支付回调。
  • payClazz 内置注册新增 epProductspProductcpProductwfProductppProduct,并对自定义支付渠道校验 account/product schema:账号金额、费率字段必须是 decimal,产品必须关联 application 并提供启用状态。
  • 金额字段迁到 Price / Decimal 语义,支付、退款、账户、提现、结算、系统账户流水等路径改用 decimal helper / BigNumber,避免以 JS number 直接计算金额。
  • 新增 upgrade/4.1.0/accounts.sqlupgrade/4.1.0/priceDecimal.sql:前者创建新渠道表,后者把历史金额列扩成 decimal(32,10)
  • 前端支付渠道选择支持 web redirect 类支付,redirectPay 会识别 pay.meta 中的 payUrlhtmlUrlcheckoutUrlpaymentUrl
  • features/Pay、订单支付组件和 payConfig/system 配置界面同步扩展到新渠道;系统账户 survey、应用 projection 和 relation 配置也加入新账号 / 产品关系。
  • SystemUser 适配 oak-general-business 6.x:System 继续保留 translationtranslateStatetranslationErrortranslate / translateSuccess / translateFail action alias,同时追加支付账号、提现账号和 payConfig
  • 修复退款取消 / stopRefunding 后订单状态回滚问题,避免从 refunding 错走支付成功分支并重复触发订单已支付副作用。
  • 账户支付、充值、退款、提现和提现转账相关 trigger 改用 decimal 值收敛,并补齐部分零金额退款和退款失败回滚路径。
  • 小程序组件配置从 index.json 批量迁到 index.config.ts / CreateComponentConfig,样式变量迁到 --oak-* 主题变量。
  • components/pay/list 支持传入分页覆盖项,支付详情、账单、账号和渠道配置组件做了 UI 与投影同步。
  • 包元数据升级为 oak.packageoak.i18noak.business.moduleoak.compiler.transform,peer 对齐 React 19、AntD 6、oak-domain 6、oak-frontend-base 6、oak-general-business 6。
  • Order / Pay 增加多货币字段与配置链路;支付产品 draft 初始化、Alipay 不支持独立退款 callback 的边界也已修正。
  • ES 构建启用 XML、render 注入和 Less Module 严格检查,组件已迁移到编译器推导的 props;旧手写 render 合同和未声明 XML/style 使用会在构建阶段暴露。
主要 diff 文件:package.jsonsrc/entities/*src/endpoints/*src/checkers/*src/triggers/*src/features/Pay.tssrc/utils/payClazz/*src/utils/redirectPay.tssrc/components/*src/configuration/*upgrade/4.1.0/*.sql

4.0.0(tag:4.0.0,区间:3.5.1..4.0.0

已发布支付业务包的 4.x ESM 和 React 19 适配版本。
  • 适配 React 19,并把迁移构建切到 ESM。
  • 包 metadata 补齐 oak.package / isLib,feature 初始化转为 package metadata 语义。
  • 移除旧 alias / build scripts,并补充英文 locale。
  • 适配新的 oak-general-businessoak-domain 依赖方式。
主要 diff 文件:package.jsonsrc/locales/*src/initialize*、构建配置。

升级注意

数据库升级:4.1.0 需要审阅并执行 upgrade/4.1.0/accounts.sqlupgrade/4.1.0/priceDecimal.sql。前者新增渠道表并手写物理外键,后者把金额列改成 decimal(32,10);生产库升级前应确认历史金额单位、精度和外键策略。
金额语义:支付、退款、账户、提现和结算金额不应继续按普通 JS number 计算。消费项目里的金额写入、比较、加减、格式化和 update expression 需要迁到 decimal 字符串 / helper 语义。
覆盖实体兼容:支付项目覆盖 SystemUser、支付配置、支付产品或支付状态时,需要保留 general-business 字段、支付字段、旧 action/state 和翻译 alias。尤其是退款状态流转,不要只按新渠道字段重写旧状态机。
自定义支付渠道:registerPayClazz 现在会校验 product/account schema。自定义账号实体必须提供 decimal price 和费率字段、systemId、提现转账开关等字段;自定义产品实体必须关联 application 并提供 enabled、税费、退款和收款配置字段。
Redirect 支付:Epay、Stripe、Creem、Waffo、PayPal 等 redirect 类渠道主要面向 web 平台,前端可用性依赖当前 application 和 pay.meta 中的跳转 URL。升级后需要检查支付成功 / 取消 URL、webhook secret、notify URL 和沙箱配置。