bindbox-game/.trae/documents/落地支付域代码生成与迁移执行计划.md
邹方成 6ee627139c
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 40s
feat: 新增支付测试小程序与微信支付集成
feat(pay): 添加支付API基础结构
feat(miniapp): 创建支付测试小程序页面与配置
feat(wechatpay): 配置微信支付参数与证书
fix(guild): 修复成员列表查询条件
docs: 更新代码规范文档与需求文档
style: 统一前后端枚举显示与注释格式
refactor(admin): 重构用户奖励发放接口参数处理
test(title): 添加称号效果参数验证测试
2025-11-17 00:42:08 +08:00

39 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 实施范围
- 对接已生成的 payment_* 表与 Model/DAO落地真实支付服务逻辑与管理端展示
## 后端服务对接
- 预下单JSAPI
- 写入 `payment_preorders``order_id/order_no/out_trade_no=order_no/prepay_id/amount_total/payer_openid/notify_url/status=created/expired_at`
- 回填 `orders.pay_preorder_id`;返回四行签名参数给小程序
- 支付通知(验签与解密)
- 入库 `payment_notify_events``notify_id/event_type/raw/processed=false`,幂等去重)
- 入库 `payment_transactions``order_id/order_no/transaction_id/amount_total/success_time/raw`
- 条件更新 `orders.status:1→2`,写 `paid_at`
- 后台主动退款(全额/部分)
- 生成 `refund_no` 并调用微信退款 API入库 `payment_refunds``order_id/order_no/refund_no/amount_refund/status/success_time/raw/reason`
- 积分恢复(统一换算与幂等):
- 部分退款:`恢复积分 = (订单积分抵扣分 × 退款分 ÷ 实付分) ÷ 100`,累计不超过订单抵扣积分;幂等以“累计已恢复”校验
- 全额退款:一次性恢复剩余积分,置 `orders.status=4`
- 对账基础能力
- 拉取交易/退款账单入库 `payment_bills`;比对生成 `payment_bill_diff`;导出差异
## 管理端接口
- 订单详情聚合字段:
- 交易:`transaction_id/success_time/amount_total`
- 退款:累计已退与明细 `refund_no/amount_refund/status/success_time/reason`
- 可退余额(分):`actual_amount - 累计退款`
- 退款列表与详情:`GET /api/admin/pay/refunds``GET /api/admin/pay/refunds/:refund_no`
- 对账入口:`POST /api/admin/pay/bills/import``GET /api/admin/pay/bills/diffs`
## 前端展示改造
- 金额统一元格式化显示(两位小数),接口仍用分;
- 详情页增加展示 `transaction_id/refund_no/channel/支付方式`、累计已退与可退余额(元);退款记录按元显示
## 幂等与安全
- 幂等键:`order_no/notify_id/refund_no`;唯一索引已在表层
- 条件更新控制并发;日志与告警覆盖验签失败、金额不一致、退款异常、对账差异
## 验收与测试
- 单元:分↔积分换算、部分/全额退款恢复、幂等重复
- 集成:真实预下单→通知→主动退款→详情对齐;对账拉取与差异
- 构建与联调通过,数据持久化与展示一致