接入前准备
开始联调前,建议先确认下面几项基础条件,避免把服务器环境问题误判成支付接口问题。
1. 获取商户 PID 与 API KEY
注册并登录商户控制台,在“安全设置”中查看 PID 和 API KEY。PID 用于标识商户;API KEY 用于服务端签名,必须妥善保管。
2. 配置码支付通道
进入“支付通道”添加收款账户。一个商户可以同时配置多条通道,系统会根据支付类型、状态、权重和限额选择可用通道。
支付宝官方码支付
选择支付宝官方当面付,填写 AppID、应用私钥、支付宝公钥等参数,并确保 Composer 已安装支付宝官方依赖。
- 适合正式支付宝商户
- 创建动态支付二维码
- 由支付宝异步通知确认结果
微信官方码支付
选择微信支付 Native,填写商户号、AppID、APIv3 Key、商户私钥、证书序列号和平台公钥信息。
- 适合正式微信支付商户
- 用户使用微信扫一扫
- APIv3 回调验签与解密
个人免签码支付
先创建监听设备,再添加个人免签通道,绑定设备并上传本人支付宝或微信静态收款码。
- 适合测试和低频自有收款
- 建议开启浮动金额
- 保持监听 App 后台运行
3. 发起码支付订单
旧项目可以使用兼容页面跳转接口 /submit.php。业务服务器准备参数后计算 MD5 签名,再以 POST 方式提交。
POST /submit.php pid=1000 type=alipay out_trade_no=ORDER202608310001 notify_url=https://merchant.example/notify return_url=https://merchant.example/return name=会员充值 money=9.90 attach=user_10086 sign=签名结果 sign_type=MD5
签名生成思路
- 移除
sign、sign_type和空值字段。 - 按参数名升序排列并拼接成
key=value&...。 - 在拼接字符串末尾直接追加商户 API KEY。
- 对最终字符串计算 MD5,得到小写签名。
4. 正确处理支付异步回调
系统确认订单支付成功后,会向商户 notify_url POST 支付结果。你的业务程序需要完成以下处理:
success,否则系统会按策略继续重试。// 伪代码示例
if (verifySign($_POST) && orderIsValid($_POST['out_trade_no'])) {
deliverOnce($_POST['out_trade_no']);
echo 'success';
}
5. 配置个人免签监听
个人免签模式由你自己的 Android 设备主动上报本人支付宝/微信到账通知。推荐按下面顺序配置:
6. 上线前检查清单
常见联调问题
提示“签名验证错误”怎么办?
检查参与签名的字段是否与实际提交字段完全一致,去除 sign、sign_type 和空值后再排序;确认最后追加的是当前商户 API KEY。
提示“没有可用收款通道”怎么办?
检查支付类型是否启用、通道是否启用且在线、金额是否落在单笔限额范围内,以及日限额是否已经用完。
订单支付成功但业务没有发货怎么办?
查看后台回调日志,确认 notify_url 是否收到请求、返回状态码是否正常、业务程序是否验签成功并返回纯文本 success。
个人免签订单一直等待支付怎么办?
检查监听客户端是否在线、通知读取权限是否开启、支付应用通知是否被系统关闭、订单实际金额是否与到账通知金额一致。