支付宝转账接入
这篇解决什么
用单笔无密转账把钱打到支付宝账号。读完能对上示例提现单、alipay_pc 渠道,以及生产必须用证书模式。
默认端口 48080。先完成 支付功能设计 和 支付宝支付接入。
示意图:业务单先落库。点转账才调 AlipayFundTransUniTransfer。生产只认证书加签。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 模块 | 转账实现 | ruoyi-office/yudao-module-pay/ |
| 示例类型 | 1 支付宝 | PayDemoWithdrawTypeEnum.ALIPAY |
| 渠道映射 | 示例走 alipay_pc | PayDemoWithdrawServiceImpl |
| 客户端 | 产品码 TRANS_ACCOUNT_NO_PWD | AbstractAlipayPayClient.doUnifiedTransfer |
| 页面 | 提现转账案例 | /pay/demo/transfer |
userAccount 填支付宝登录号,userName 建议填实名。应用 demo 要先开通支付宝渠道,并在开放平台开通「单笔转账到支付宝账户」。
客户端固定:productCode = TRANS_ACCOUNT_NO_PWD,bizScene = DIRECT_TRANSFER。额外参数可用 PayTransferCreateReqDTO.buildAlipayChannelExtra(sceneName) 带转账场景名。
生产必须证书模式
沙箱可用公钥或证书。正式环境支付宝要求公钥证书加签,AlipayPayClientConfig.mode 要设为 2,并上传应用证书、支付宝证书、根证书。只填公钥,生产转账会被拒。
创建接口 POST /pay/demo-withdraw/create,发起 POST /pay/demo-withdraw/transfer。回写 POST /pay/demo-withdraw/update-transferred,@PermitAll,内部再校验转账单。
同步挂 payTransferSyncJob。渠道回调 POST /pay/notify/transfer/{channelId}。yudao.pay.transfer-notify-url 要公网。
转账单台账在「转账订单」/pay/transfer。示例单和台账不是同一张表,对账看 pay_transfer。
配置与操作
走 应用信息(1126,/pay/app)给 demo 开通 alipay_pc,并在开放平台开通「单笔转账到支付宝账户」。示例类型「支付宝」映射成 alipay_pc。生产 AlipayPayClientConfig.mode 必须是 2(证书)。
保存后走 提现转账案例(2550,/pay/demo/transfer)。userAccount 填支付宝登录号,userName 建议填实名。产品码 TRANS_ACCOUNT_NO_PWD,场景 DIRECT_TRANSFER。台账在 转账订单(2559,/pay/transfer)。同步挂 payTransferSyncJob。回调 POST /pay/notify/transfer/{channelId} 要公网。开启见 支付功能设计。

本系统截图:支付管理 → 应用信息。支付宝转账复用 alipay_pc,生产必须证书模式。

本系统截图:接入示例 → 提现转账案例。类型选支付宝,账号填收款支付宝。
