Skip to content

支付宝支付接入 ​

这篇解决什么 ​

在应用下打开支付宝渠道、填沙箱或正式参数、用接入示例付一笔。读完能对上 alipay_pc 等编码,以及渠道回调地址。

默认端口 48080。先完成 支付功能设计,建议先用 模拟支付 把示例单跑通。

示意图:下单请求出站到支付宝。异步通知进 /pay/notify/order/{channelId},再回写业务。

渠道编码 ​

名称说明仓库路径
模块支付宝客户端ruoyi-office/yudao-module-pay/
alipay_pcPC 网站,收银台最常用AlipayPcPayClient
alipay_wap手机网站AlipayWapPayClient
alipay_appAppAlipayAppPayClient
alipay_qr扫码AlipayQrPayClient
alipay_bar条码(商家扫用户)AlipayBarPayClient
配置公钥或证书AlipayPayClientConfig

配置在应用信息的渠道弹窗里。共用一套 AlipayPayClientConfig:

  • 网关:正式 https://openapi.alipay.com/gateway.do,沙箱用开放平台给的 sandbox 地址
  • appId、签名 RSA2
  • 模式 1 公钥:商户私钥 + 支付宝公钥
  • 模式 2 证书:应用证书、支付宝证书、根证书内容

不要把私钥提交进 Git。页面上的「秘钥解析」权限字是 pay:channel:parsing。

回调和联调 ​

渠道通知打到 yudao.pay.order-notify-url + /{channelId},也就是 POST /admin-api/pay/notify/order/{channelId}。退款是 /pay/notify/refund/{channelId}。接口 @PermitAll 且 @TenantIgnore。

应用 demo 的 orderNotifyUrl 指向 POST /pay/demo-order/update-paid。自己的业务单把这个地址换成自己的回写接口,内部必须核对支付单状态和金额。

本机地址支付宝打不进来

application-local.yaml 里的 yudao.pay.*-notify-url 要换成公网可访问的入口。只改应用上的业务回调不够。没穿透时先用模拟渠道。

接入示例创建订单走 PayOrderApi,用户类型是管理员。PC 收银台选 alipay_pc 会打开支付宝页面。付完后等 payNotifyJob 或同步查询,列表明细才会变已支付。

官方沙箱、密钥生成以支付宝开放平台为准,本篇只写本仓库要填的字段。

配置与操作 ​

走 应用信息(1126,/pay/app)给应用 demo 开渠道。常用 alipay_pc,还有 alipay_wap / alipay_app / alipay_qr / alipay_bar。共用 AlipayPayClientConfig:网关、appId、RSA2,模式 1 公钥或 2 证书。秘钥解析权限 pay:channel:parsing。私钥不要进 Git。

保存后示例走 支付&退款案例(2549,/pay/demo/order)选 alipay_pc。异步通知 POST /admin-api/pay/notify/order/{channelId},退款 /pay/notify/refund/{channelId}。yudao.pay.order-notify-url 必须公网。本机没穿透先用 mock。开启见 支付功能设计。

支付应用

本系统截图:支付管理 → 应用信息。支付宝渠道在应用下开通,不是单独菜单。

接入示例

本系统截图:接入示例 → 支付&退款案例。应用 demo 开通 alipay_pc 后,收银台即可跳转支付宝。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版