Anheyu LogoAnheyu

支付配置指南

详细了解如何配置支付宝和微信支付

本文档详细说明如何从支付宝和微信支付平台获取必要的配置参数,并在 AnheyuPro 系统中进行配置。

支付宝支付配置

前置条件

在开始配置之前,您需要:

  1. 拥有支付宝企业账号
  2. 完成企业实名认证
  3. 已开通"当面付"产品(用于生成二维码支付)
  4. 拥有已创建的应用(网页/移动应用)

获取配置参数

1. 登录支付宝开放平台

访问 支付宝开放平台,使用企业支付宝账号登录。

2. 创建或选择应用

创建新应用(如果还没有):

  1. 进入 控制台网页&移动应用
  2. 点击 创建应用
  3. 选择应用类型(网页应用或移动应用)
  4. 填写应用信息:
    • 应用名称
    • 应用图标
    • 应用简介
  5. 提交审核(审核通过后才能正式使用)

选择已有应用:

在控制台找到您要使用的应用,点击进入。

3. 获取应用 ID(app_id)

在应用详情页面,可以看到 APPID,这就是配置中需要的 app_id

示例:2012319012372378

4. 配置应用密钥

4.1 生成密钥对

支付宝采用 RSA2(SHA256withRSA)非对称加密算法,需要生成公钥和私钥。

方式一:使用支付宝提供的密钥生成工具(推荐)

  1. 下载 支付宝密钥生成工具

    • Windows: 点击下载 Windows 版本
    • macOS: 点击下载 macOS 版本
  2. 运行工具:

    • 选择密钥格式:PKCS1(非 JAVA 适用)
    • 选择密钥长度:2048
    • 点击 生成密钥
  3. 工具会生成两个文件:

    • 应用私钥.txt - 这就是 app_private_key
    • 应用公钥.txt - 需要上传到支付宝

方式二:使用 OpenSSL 命令行生成(技术人员)

# 生成私钥
openssl genrsa -out app_private_key.pem 2048

# 从私钥中提取公钥
openssl rsa -in app_private_key.pem -pubout -out app_public_key.pem

# 查看私钥(去掉头尾标识,得到纯密钥内容)
cat app_private_key.pem
4.2 上传应用公钥到支付宝
  1. 在应用详情页面,找到 开发信息接口加签方式
  2. 点击 设置修改
  3. 选择 公钥 方式
  4. 应用公钥.txt 的内容(不包含头尾的 BEGIN/END 行,只要中间的内容)粘贴到文本框
  5. 点击 保存设置
4.3 获取支付宝公钥(alipay_public_key)

上传应用公钥后,支付宝会生成对应的 支付宝公钥

  1. 接口加签方式 设置页面
  2. 点击 查看支付宝公钥
  3. 复制显示的公钥内容(纯密钥,不含头尾)
示例格式:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...(很长一段字符)...QIDAQAB

5. 开通产品功能

确保已开通 当面付 功能:

  1. 在应用详情页面,找到 产品绑定
  2. 搜索并添加 当面付 产品
  3. 签约并开通(可能需要审核)

6. 配置回调地址(可选)

系统会自动生成回调地址,但您也可以在支付宝后台配置备用:

  1. 在应用详情中找到 功能信息授权回调地址
  2. 添加您的域名回调地址:https://your-domain.com/api/pro/payment/callback/alipay

支付宝配置说明

将获取的参数填入系统的 支付宝配置 表单:

配置项说明示例
应用 ID支付宝应用的 APPID2021001234567890
应用私钥应用私钥内容,可以是纯密钥或带 PEM 头尾的完整格式支持两种格式见下方
支付宝公钥从支付宝平台获取的公钥内容纯密钥或带 PEM 头尾

应用私钥格式示例:

格式一(纯密钥内容,推荐):
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC...(省略)...

格式二(完整 PEM 格式):
-----BEGIN RSA PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC...
(多行)
...
-----END RSA PRIVATE KEY-----

支付宝公钥格式示例:

格式一(纯密钥内容,推荐):
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...(省略)...

格式二(完整 PEM 格式):
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
(多行)
...
-----END PUBLIC KEY-----

重要提示

  • 应用私钥务必妥善保管,不要泄露给任何人 - 支付宝公钥要从支付宝平台复制,不是您自己生成的应用公钥 - 系统会自动处理密钥格式,两种格式都支持

微信支付配置

前置条件

在开始配置之前,您需要:

  1. 已注册微信支付商户号
  2. 完成企业认证
  3. 已开通 Native 支付 产品(扫码支付)
  4. 拥有对应的微信公众号或小程序(可选)

获取配置参数

1. 登录微信支付商户平台

访问 微信支付商户平台,使用商户号登录。

2. 获取基本信息

2.1 获取商户号(mch_id)

登录后,在 账户中心个人信息 或页面右上角可以看到:

商户号:1234567890

这就是配置中的 mch_id

2.2 获取应用 APPID(app_id)

微信支付需要关联一个应用(公众号、小程序或 APP):

  1. 进入 产品中心AppID 账号管理
  2. 查看已关联的 APPID
  3. 如果没有,需要先关联:
    • 公众号 APPID:在 微信公众平台开发基本配置 中查看
    • 小程序 APPID:在小程序管理后台查看
    • APP:在开放平台申请
示例 APPID:wx1234567890abcdef

3. 生成 API 密钥

3.1 设置 API v3 密钥(api_v3_key)

微信支付 API v3 使用 APIv3 密钥进行加解密:

  1. 登录商户平台
  2. 进入 账户中心API 安全APIv3 密钥
  3. 如果未设置,点击 设置密钥
    • 输入 32 位的密钥(可以是任意字符组合,建议随机生成)
    • 需要输入短信验证码确认
  4. 记录下您设置的密钥
示例(32位字符串):
abcd1234efgh5678ijkl9012mnop3456

注意

APIv3 密钥设置后不可查看,请务必妥善保管!如果遗失需要重新设置。

如何生成 32 位随机密钥:

# 方法一:使用 OpenSSL
openssl rand -hex 16

# 方法二:Python
python3 -c "import secrets; print(secrets.token_hex(16))"
3.2 生成商户私钥和获取证书序列号

微信支付使用 API 证书进行身份验证:

步骤 1:申请 API 证书

  1. 在商户平台进入 账户中心API 安全API 证书
  2. 如果没有证书,点击 申请证书
  3. 下载并安装 微信支付商户平台证书工具
  4. 运行工具,使用商户号和操作密码登录
  5. 工具会生成证书文件并自动上传

步骤 2:下载证书文件

工具会生成以下文件(保存在本地目录):

  • apiclient_cert.p12 - 证书文件
  • apiclient_cert.pem - 证书公钥
  • apiclient_key.pem - 商户私钥(重要)

其中 apiclient_key.pem 就是我们需要的 private_key_data

步骤 3:查看商户证书序列号(mch_serial_no)

  1. 在商户平台 账户中心API 安全API 证书
  2. 查看证书列表,找到 证书序列号
示例序列号:1234567890ABCDEF1234567890ABCDEF12345678

或者使用命令行查看:

# 从证书文件中提取序列号(16进制格式,全大写)
openssl x509 -in apiclient_cert.pem -noout -serial | awk -F= '{print $2}'

4. 提取商户私钥内容

打开 apiclient_key.pem 文件,完整复制其中的内容(包括头尾):

-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDZ...
(多行内容)
...
-----END PRIVATE KEY-----

5. 配置支付回调地址

  1. 进入 产品中心开发配置
  2. 找到 Native 支付回调链接支付回调 URL
  3. 设置回调地址:https://your-domain.com/api/pro/payment/callback/wechat
  4. 保存配置

6. 开通 Native 支付

  1. 进入 产品中心我的产品
  2. 确认 Native 支付 已开通
  3. 如果没有,申请开通(一般企业商户默认开通)

微信支付配置说明

将获取的参数填入系统的 微信支付配置 表单:

配置项说明示例来源
应用 ID微信 APPID(公众号/小程序/APP)wx1234567890abcdef微信公众平台/开放平台
商户号微信支付商户号1234567890商户平台-账户中心
商户序列号API 证书序列号(40 位 16 进制)1A2B3C...商户平台-API 证书页面
API v3 密钥APIv3 密钥(32 位字符串)abcd1234...商户平台自行设置
商户私钥API 证书私钥(PEM 格式)完整的 PEM 文件内容证书工具生成的文件

商户私钥格式要求:

-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDZ...
(完整的多行内容,不要修改任何字符)
...
-----END PRIVATE KEY-----

重要提示

  • 商户私钥必须保持完整的 PEM 格式,包括头部和尾部 - 证书序列号必须是 40 位 16 进制字符(可能包含大小写字母和数字) - API v3 密钥为 32 位,请妥善保管 - 所有密钥信息严禁泄露,系统会加密存储

系统配置

配置步骤

  1. 登录 AnheyuPro 管理后台

    • 访问:https://your-domain.com/admin
    • 使用管理员账号登录
  2. 进入支付配置页面

    • 导航至:系统设置支付配置
  3. 配置支付宝

    • 填写 应用 ID应用私钥支付宝公钥
    • 点击 保存配置
    • 点击 测试连接 验证配置是否正确
    • 如果测试成功,启用右上角的开关
  4. 配置微信支付

    • 填写 应用 ID商户号商户序列号
    • 填写 API v3 密钥商户私钥
    • 点击 保存配置
    • 点击 测试连接 验证配置是否正确
    • 如果测试成功,启用右上角的开关
  5. 配置站点 URL(重要)

    • 进入 系统设置基础设置
    • 设置 站点 URL(例如:https://your-domain.com
    • 系统会根据站点 URL 自动生成支付回调地址

配置验证

配置完成后,请进行以下验证:

  1. 查看配置状态

    • 配置页面顶部的状态卡片显示 已配置已启用
  2. 测试连接

    • 点击每个支付方式的 测试连接 按钮
    • 确保显示 "连接成功"
  3. 创建测试订单

    • 在前台创建一个小额订单(如 0.01 元)
    • 选择支付方式,扫码支付
    • 验证支付流程是否正常
  4. 检查回调

    • 完成支付后,系统应自动更新订单状态
    • 如果订单状态未更新,检查:
      • 支付平台的回调地址配置
      • 服务器防火墙是否允许外部访问
      • 系统日志中的错误信息

常见问题

支付宝相关

Q1: 提示"签名验证失败"

A: 检查以下几点:

  • 应用私钥和上传到支付宝的应用公钥必须是配对的
  • 确认使用的是应用私钥,不是应用公钥
  • 确认填写的支付宝公钥是从支付宝平台获取的,不是自己生成的应用公钥
  • 密钥格式是否正确,可以尝试两种格式(带头尾/不带头尾)

Q2: 提示"应用未授权"或"ISV 权限不足"

A:

  • 确认应用已通过审核上线
  • 确认已开通并签约"当面付"产品
  • 在应用详情中检查产品绑定状态

Q3: 密钥太长,无法完整复制

A:

  • 使用文本编辑器打开密钥文件
  • 确保复制时没有多余的空格或换行
  • 可以将多行密钥连接成一行(系统会自动处理)

微信支付相关

Q1: 提示"证书序列号错误"

A:

  • 使用命令或在商户平台确认证书序列号
  • 序列号应该是 40 位 16 进制字符
  • 确保没有多余的空格或特殊字符
  • 注意序列号的大小写

Q2: 提示"签名验证失败"

A:

  • 确认商户私钥是完整的 PEM 格式
  • 检查私钥文件是否被修改过
  • 确认使用的是与证书序列号对应的私钥
  • API v3 密钥是否正确(32 位)

Q3: 回调地址无法访问

A:

  • 确认服务器防火墙已开放 443 端口(HTTPS)
  • 微信支付回调只支持 HTTPS,不支持 HTTP
  • 测试回调地址是否可以从外网访问:curl https://your-domain.com/api/pro/payment/callback/wechat
  • 检查 SSL 证书是否有效

Q4: API v3 密钥忘记了怎么办?

A:

  • API v3 密钥无法查看,只能重新设置
  • 进入商户平台 → 账户中心 → API 安全 → APIv3 密钥
  • 点击"重新设置",输入新的 32 位密钥
  • 更新系统中的配置

通用问题

Q1: 支付成功但订单状态未更新

A:

  • 检查支付平台的回调地址配置
  • 查看系统日志,确认是否收到回调请求
  • 确认站点 URL 配置正确
  • 测试回调地址的可访问性

Q2: 测试连接失败

A:

  • 检查所有配置项是否完整填写
  • 确认密钥格式正确,无多余空格
  • 查看浏览器控制台和系统后台日志的详细错误信息
  • 确认网络连接正常,能访问支付平台 API

Q3: 如何切换测试环境和生产环境?

A:

  • 支付宝:使用沙箱环境需要单独申请沙箱账号和密钥
  • 微信支付:没有独立的沙箱环境,建议创建小额测试订单
  • 建议在测试环境和生产环境使用不同的应用和配置

Q4: 配置保存后显示为"未配置"

A:

  • 刷新页面重新查看
  • 检查浏览器控制台是否有错误
  • 确认保存操作是否成功(应显示"保存成功"提示)
  • 检查后台日志是否有错误信息

安全建议

密钥安全

  1. 私钥保护

    • 私钥文件务必妥善保管,不要提交到代码仓库
    • 不要通过不安全的渠道(如邮件、即时通讯)传输私钥
    • 定期更换密钥(建议每年更换一次)
  2. 访问控制

    • 限制能够访问支付配置页面的管理员人数
    • 使用强密码保护管理员账号
    • 启用两步验证(如果系统支持)
  3. 环境隔离

    • 生产环境和测试环境使用不同的应用和密钥
    • 不要在生产环境使用测试密钥
  4. 日志监控

    • 定期检查支付相关日志
    • 监控异常支付行为
    • 设置告警机制

服务器安全

  1. HTTPS 必须

    • 支付回调地址必须使用 HTTPS
    • 使用有效的 SSL 证书(不要使用自签名证书)
    • 定期更新证书
  2. 防火墙配置

    • 只开放必要的端口(80, 443)
    • 配置适当的访问规则
    • 使用 CDN 和 DDoS 防护
  3. 数据加密

    • 系统会自动加密存储支付配置
    • 建议设置环境变量 ANHEYU_PAYMENT_ENCRYPT_KEY 为自定义的 32 位密钥
    • 数据库备份也应加密存储

技术支持

如果在配置过程中遇到问题,可以:

  1. 查看系统日志

    • 后台日志:检查服务器日志文件
    • 浏览器控制台:查看前端错误信息
  2. 官方文档

  3. 联系支持

    • AnheyuPro 技术支持
    • 支付宝/微信支付的商户客服

附录

支付宝密钥生成工具下载

微信支付证书工具下载

相关链接


提示

配置完成后,请务必进行小额测试,确保支付流程完整可用后再正式启用。

Last updated on