Appearance
支付宝支付配置
DJAOD 集成支付宝支付,需要开通 PC网站支付、手机网站支付、当面付(扫码/条码)、APP支付 及 小程序支付 等多种场景。本章从账号注册、应用创建、产品申请、密钥生成到 DJAOD 后台配置,介绍全流程操作。
一、注册开发者账号
前往 支付宝开放平台 注册开发者账号并完成企业实名认证(个人账号部分产品受限)。
登录后进入 控制台 → 我的应用,后续所有操作均在此进行。
二、创建应用
1. 新建应用
点击 创建应用 → 网页/移动应用,选择 自定义接入:
- 应用名称:如
DJAOD商城 - 应用类型:选择 网页应用(支持PC网站支付+手机网站支付)
- 应用图标:上传应用图标
2. 添加能力
创建成功后进入应用详情页,在 能力列表 中点击 + 添加能力,根据你的业务需求勾选:
| 能力名称 | 对应场景 | DJAOD接口 |
|---|---|---|
| 电脑网站支付 | PC端网页支付 | web() → alipay.trade.page.pay |
| 手机网站支付 | H5移动端支付 | wap() → alipay.trade.wap.pay |
| 当面付 | 线下扫码/条码支付 | scan() → alipay.trade.precreate |
| App支付 | 移动App内支付 | app() → alipay.trade.app.pay |
| 小程序支付 | 支付宝小程序内支付 | mini() → alipay.trade.create |
注意:当面付需单独签约,首次添加能力后需要在 产品绑定 页面提交审核。
3. 设置接口加签方式
在应用详情的 开发设置 → 接口加签方式 中配置:
- 加签模式:选择 公钥模式(推荐普通开发者使用)或 证书模式(推荐企业级使用,支持提现转账)
- 密钥格式:选择 PKCS1(非Java) 或 PKCS8(Java适用),Node.js 环境使用 PKCS1
密钥生成方式见下文第四章。
三、产品申请与审核
电脑网站支付
添加 电脑网站支付 能力后,在 产品配置 中填写:
- 授权回调地址:
https://www.example.com/payment/alipay/return - 支付结果通知地址:
https://www.example.com/payment/alipay/notify - 支付宝异步通知地址:同上
以上地址替换为你的实际域名,路径以 DJAOD 实际路由为准。
手机网站支付
添加能力后需配置:
- 授权回调地址:同上
- 支付结果通知地址:同上
当面付
当面付需单独签约,在 产品绑定 → 当面付 中点击 立即签约,提交营业执照等资料,审核通过后即可使用。
当面付支持两种模式:
- 扫码支付:商户生成二维码,用户扫码支付(
alipay.trade.precreate) - 条码支付:用户出示付款码,商户扫码收款(
alipay.trade.pay,需要扫码枪设备)
四、密钥生成
安装OpenSSL工具
- Windows:下载 OpenSSL for Windows 并安装,或使用 Git Bash 自带的 OpenSSL
- macOS / Linux:系统自带,直接使用
生成 RSA 密钥对(推荐 RSA2 签名算法)
bash
# 1. 生成 2048位 RSA 私钥(PKCS1 格式)
openssl genrsa -out app_private_key.pem 2048
# 2. 从私钥导出 PKCS1 格式公钥
openssl rsa -in app_private_key.pem -pubout -out app_public_key.pem
# 3. (可选)转换为 PKCS8 格式(Java等环境使用)
openssl pkcs8 -topk8 -inform PEM -in app_private_key.pem -outform PEM -nocrypt -out app_private_key_pkcs8.pem查看密钥内容
bash
# 查看私钥
cat app_private_key.pem
# 查看公钥
cat app_public_key.pem私钥内容示例(PKCS1):
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA...
-----END RSA PRIVATE KEY-----公钥内容示例:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
-----END PUBLIC KEY-----上传公钥至开放平台
- 在应用详情 开发设置 → 接口加签方式 中点击 设置
- 加签模式:选择 公钥模式
- 将
app_public_key.pem中---BEGIN PUBLIC KEY---到---END PUBLIC KEY---之间的内容(包含标记行)复制粘贴到输入框 - 点击 保存 后,平台会生成 支付宝公钥,复制保存到记事本中
重要:保存下图中平台返回的 支付宝公钥(
alipay_public_key),DJAOD 后台配置需要同时填写 应用私钥 和 支付宝公钥。
证书模式(可选)
如需使用证书模式(支持转账提现能力),在加签方式中选择 证书模式:
- 上传应用公钥证书(使用
app_public_key.pem在开放平台生成的 CSR 申请) - 下载 支付宝根证书(
alipay_root_cert.crt)和 支付宝公钥证书(alipay_public_cert.crt) - 下载 应用公钥证书(
app_cert_public_key.crt)
将以上三个证书文件上传至 DJAOD 服务器的 data/certs/ 目录下。
五、DJAOD后台配置
登录 DJAOD 后台,进入 系统设置 → 支付宝配置。
签名方式选择
首先选择 签名方式:
- 普通公钥:适用于大多数场景
- 公钥证书:如需使用转账、提现等功能,必须选此模式
普通公钥模式配置
选择 普通公钥 后,填写以下字段:
| 配置项 | 说明 |
|---|---|
| 支付宝应用PID | 开放平台应用详情中的 AppID(格式如 2021003141661189) |
| 支付宝应用私钥 | 上一步生成的 app_private_key.pem 文件完整内容(含标记行) |
| 支付宝公钥 | 开放平台生成的支付宝公钥完整内容(含标记行) |
公钥证书模式配置
选择 公钥证书 后,还需额外上传三个证书文件:
| 配置项 | 说明 |
|---|---|
| 支付宝应用PID | 同普通公钥模式 |
| 支付宝应用私钥 | 同普通公钥模式 |
| 支付宝根证书 | alipay_root_cert.crt 文件 |
| 支付宝根证书路径 | alipay_public_cert.crt 文件 |
| 支付宝应用公钥证书 | app_cert_public_key.crt 文件 |
证书文件上传后会自动存储在
data/certs/目录。
保存验证
填写完成后点击 保存,然后在网站前端发起一笔测试支付订单,验证支付流程是否正常:
- 点击支付,能够正确跳转至支付宝收银台
- 支付完成后能够正确回跳至网站
- 支付宝异步通知能够正确更新订单状态
六、沙箱环境测试
支付宝提供 沙箱环境 用于开发调试:
- 进入沙箱应用页面,获取沙箱 AppID
- 系统已预置测试买家账号和商家账号,无需真实资金
- 沙箱网关地址:
https://openapi-sandbox.dl.alipaydev.com - 在 DJAOD 后台将应用 PID 替换为沙箱 AppID,即可进行测试
注意:沙箱环境的支付宝公钥和应用私钥需单独生成,步骤同正式环境。
七、常见问题
| 问题 | 原因与解决 |
|---|---|
无效的应用ID | AppID 填写错误或应用未审核通过 |
签名验证失败 | 私钥与支付宝公钥不匹配,重新检查密钥配置 |
2019: 商家未签约 | 对应产品能力未开通或未提交审核 |
4004: 调用接口权限不足 | 应用未添加对应能力,在能力列表补充 |
异步通知收不到 | 通知地址需公网可访问,检查服务器防火墙和Nginx配置 |
订单已支付但状态未更新 | 检查 notify_url 是否可达,验证签名逻辑是否正常 |