支付宝转账接入
支付宝转账接入用于演示企业向支付宝账户付款的业务链路。RuoYi Office 当前通过“示例提现单”页面创建提现业务单,再调用 Pay 转账能力生成转账单,并在转账完成后回写提现状态。
本页聚焦支付宝转账差异点;转账单通用能力请先阅读 转账管理。
当前实现边界
| 层 | 路径 / 接口 |
|---|---|
| 示例提现控制器 | PayDemoWithdrawController |
| 示例提现服务 | PayDemoWithdrawServiceImpl |
| 管理端示例页 | apps/web-antd/src/views/pay/demo/withdraw |
| 示例提现接口 | /pay/demo-withdraw/create、/pay/demo-withdraw/transfer |
| 转账查询接口 | /pay/transfer/page、/pay/transfer/get |
示例提现类型为“支付宝”时,服务会选择:
java
PayChannelEnum.ALIPAY_PC.getCode()当前仓库用 alipay_pc 作为支付宝转账示例渠道编码。生产环境请以实际 Pay 渠道客户端支持和支付宝产品开通情况为准。
示例链路
管理端表单字段包括提现标题、提现金额、提现类型、收款人账号和收款人姓名。支付宝类型下,收款人账号提示为“支付宝账号”。
发起前检查
| 检查项 | 说明 |
|---|---|
| 支付应用 | appKey=demo 的支付应用存在并启用 |
| 支付宝渠道 | 支付宝渠道配置完整,证书/密钥正确 |
| 提现单状态 | 只能等待转账或转账失败后重新转账 |
| 收款账号 | 示例中填写支付宝账号;生产建议校验账号格式和实名 |
| 金额单位 | 后端以分为单位,前端输入元后提交时需统一转换 |
回调校验
转账完成后,示例提现服务会校验:
- Pay 转账单存在。
- 转账单状态已经成功或关闭。
- 转账金额和提现单一致。
merchantTransferId等于提现单 ID。- 转账渠道和提现单记录一致。
这些校验可以避免把错误渠道、错误金额或错误业务单的回调写入当前提现单。
生产接入建议
- 支付宝转账通常涉及实名、账户、风控和限额,生产前要确认支付宝产品权限。
- 财务付款类业务建议增加审批流和操作日志。
- 转账失败不要直接删除业务单,应保留渠道错误信息并允许按规则重试。
- 收款账号属于敏感信息,导出和查询权限要收敛。
排查清单
| 现象 | 优先检查 |
|---|---|
| 提现单无法发起转账 | 状态是否为等待转账/失败,渠道是否配置 |
| 支付宝渠道报错 | 应用私钥、公钥/证书、产品权限、收款账号 |
| 转账后业务状态不变 | 转账回调、merchantTransferId、Pay 转账单状态 |
| 重新转账失败 | 原提现单是否处于失败关闭状态,旧转账单是否已终态 |
下一步
微信付款到零钱或小程序相关付款请阅读 微信转账接入。
