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 内置注册新增 epProduct、spProduct、cpProduct、wfProduct、ppProduct,并对自定义支付渠道校验 account/product schema:账号金额、费率字段必须是 decimal,产品必须关联 application 并提供启用状态。
  • 金额字段迁到 Price / Decimal 语义,支付、退款、账户、提现、结算、系统账户流水等路径改用 decimal helper / BigNumber,避免以 JS number 直接计算金额。
  • 新增 upgrade/4.1.0/accounts.sql 和 upgrade/4.1.0/priceDecimal.sql:前者创建新渠道表,后者把历史金额列扩成 decimal(32,10)。
  • 前端支付渠道选择支持 web redirect 类支付,redirectPay 会识别 pay.meta 中的 payUrl、htmlUrl、checkoutUrl、paymentUrl。
  • features/Pay、订单支付组件和 payConfig/system 配置界面同步扩展到新渠道;系统账户 survey、应用 projection 和 relation 配置也加入新账号 / 产品关系。
  • System、User 适配 oak-general-business 6.x:System 继续保留 translation、translateState、translationError 和 translate / translateSuccess / translateFail action alias,同时追加支付账号、提现账号和 payConfig。
  • 修复退款取消 / stopRefunding 后订单状态回滚问题,避免从 refunding 错走支付成功分支并重复触发订单已支付副作用。
  • 账户支付、充值、退款、提现和提现转账相关 trigger 改用 decimal 值收敛,并补齐部分零金额退款和退款失败回滚路径。
  • 小程序组件配置从 index.json 批量迁到 index.config.ts / CreateComponentConfig,样式变量迁到 --oak-* 主题变量。
  • components/pay/list 支持传入分页覆盖项,支付详情、账单、账号和渠道配置组件做了 UI 与投影同步。
  • 包元数据升级为 oak.package、oak.i18n、oak.business.module 和 oak.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.json、src/entities/*、src/endpoints/*、src/checkers/*、src/triggers/*、src/features/Pay.ts、src/utils/payClazz/*、src/utils/redirectPay.ts、src/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-business 和 oak-domain 依赖方式。
主要 diff 文件:package.json、src/locales/*、src/initialize*、构建配置。

升级注意

数据库升级:4.1.0 需要审阅并执行 upgrade/4.1.0/accounts.sql 与 upgrade/4.1.0/priceDecimal.sql。前者新增渠道表并手写物理外键,后者把金额列改成 decimal(32,10);生产库升级前应确认历史金额单位、精度和外键策略。
金额语义:支付、退款、账户、提现和结算金额不应继续按普通 JS number 计算。消费项目里的金额写入、比较、加减、格式化和 update expression 需要迁到 decimal 字符串 / helper 语义。
覆盖实体兼容:支付项目覆盖 System、User、支付配置、支付产品或支付状态时,需要保留 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 和沙箱配置。