一、支付宝接入核心基础知识点
1.1 第三方支付接入背景
国内拥有支付牌照的企业仅两百余家,多数企业需接入第三方支付实现支付能力,主流第三方支付包含支付宝、云闪付、和包支付、翼支付等,本次电商项目选用支付宝作为接入方。
1.2 支付宝开放平台体系
支付宝提供两大服务开放平台,技术接入核心使用支付宝开放平台 (https://open.alipay.com/) ,商家管理使用支付宝商家中心 (https://b.alipay.com/page/portal/home)。开放平台提供丰富的支付接入场景,本次电商项目核心采用当面付,其他常见场景包括 APP 支付、手机 / 电脑网站支付、刷脸付、周期扣款等。
1.3 当面付核心场景
当面付包含两种典型支付模式,电商项目选用商家出码,用户扫码支付模式:
- 付款码支付:用户出示付款码,商家扫码收款;
- 扫码支付:商家生成收款二维码,用户支付宝扫码完成支付。
1.4 支付宝沙箱环境 vs 正式环境
| 对比维度 | 沙箱环境 | 正式环境 |
|---|---|---|
| 核心用途 | 接口开发、功能联调的模拟环境,免交易手续费 | 生产环境,真实交易,按笔收取手续费 |
| PID/APPID 获取 | 平台直接提供测试数据,定期变更 | 商家中心申请 PID,开放平台创建应用获取 APPID,需绑定 |
| 产品签约 | 默认完成核心产品签约 | 需单独对支付产品进行签约 |
| 接口兼容性 | 与正式环境接口不完全一致 | 真实业务接口,需单独测试验收 |
| 配套工具 | 提供沙箱版支付宝 APP(https://open.alipay.com/develop/sandbox/tool) | 使用官方正式支付宝 APP |
| 核心操作 | 无需提交资料、审批 | 需提交企业资料,完成多环节审批 |
关键绑定规则:
- 1 个 PID 可绑定多个 APPID,1 个 APPID 仅能绑定 1 个 PID;
- APPID 绑定后暂不支持解绑;
- 操作绑定的支付宝账号需与 APPID 对应的开发者账号一致。
1.5 支付宝加密安全机制
采用RSA 非对称加密 ,且为双向非对称加密 安全机制,保障业务请求报文的安全性,密钥生成需使用支付宝官方密钥生成工具 (https://opendocs.alipay.com/common/02kipl)。

加签类型 :支持 RSA (SHA1withRsa)、RSA2 (SHA256withRsa),项目中选用RSA2(安全性更高)。
二、Java 接入支付宝当面付实战步骤
2.1 开发准备
- 下载支付宝官方 SDK+Demo(项目提供整合当面付 + 电脑网站支付的 AlipayDemo);
- 下载沙箱版支付宝 APP 并安装;
- 生成应用公私钥对,将应用公钥上传至支付宝开放平台,保存应用私钥;
- 从沙箱环境获取支付宝公钥、PID、APPID,沙箱环境网关地址
https://openapi.alipaydev.com/gateway.do。
2.2 配置文件修改
核心配置文件为zfbinfo.properties,电脑网站支付配置在com.example.demo.config.AlipayConfig,需配置核心参数:
| 参数名 | 含义 | 配置要求 |
|---|---|---|
| private_key | 应用私钥 | 自己保存的应用私钥,与上传的公钥成对 |
| public_key | 应用公钥 | 上传至支付宝的应用公钥 |
| alipay_public_key | 支付宝公钥 | 沙箱 / 正式环境平台获取 |
| sign_type | 签名类型 | 项目配置为 RSA2 |
| app_id | 应用 ID | 沙箱 / 正式环境获取 |
| pid | 商家账户 ID | 沙箱 / 正式环境获取 |
| open_api_domain | 请求网关地址 | 沙箱环境为https://openapi.alipaydev.com/gateway.do |
| max_query_retry/query_duration | 当面付查询次数 / 间隔 | 自定义,示例为 5 次 / 5000 毫秒 |
2.3 代码修改与运行
- 启动类为当面付模块的
Main.java,修改 435 行二维码生成路径,解除二维码生成代码的注释; - 手动创建二维码保存的本地目录(如示例中的 D:/alipay/);
- 执行
Main.java,预下单成功会打印日志(code:10000 表示成功),并在指定目录生成二维码图片。
2.4 测试与验证
- 使用沙箱版支付宝 APP扫描生成的二维码完成支付;
- 沙箱环境控制台查看买家 / 卖家账户余额变化,确认交易是否成功;
- 体验 Demo 中查询、退货等其他业务操作。
预下单成功日志特征 :返回qr_code(二维码链接)、out_trade_no(商户订单号),签名sign等核心参数。
三、电商项目支付流程设计
3.1 核心技术方案
采用RocketMQ 事务消息 实现订单确认机制,完成订单超时回退功能,解决用户下单后未支付的订单资源占用问题。
3.2 当面付业务数据流转
