1. 接口规则
腾讯云商付 API 的所有接口均通过 HTTPS 进行通信,提供高安全性的通信通道。并且均使用UTF-8编码。所有接口请求都涉及公共参数,公共参数需要统一放到 HTTP Header 请求头部中,具体请参考 公共参数 (opens in a new tab)。
开发者和腾讯云商付通信包含:开发者请求腾讯云商付、腾讯云商付回调通知开发者,通信过程涉及签名和验签,整体流程如下:

2. 开发准备
2.1 搭建和配置开发环境
为了帮助开发者调用开放接口,我们提供了 JAVA、PHP、GO 三种语言版本的示例代码,封装了签名生成、签名验签 等基础逻辑。 在接口测试之前,需在腾讯云商付管理后台 "开发者参数" 菜单 "生产环境" 获取 主体标识(ocode)、Secret ID、腾讯云商付公钥,并设置主体公钥。
请求腾讯云商付测试步骤:
- 拼接规范请求串 (opens in a new tab)
- 拼接待签名字符串 (opens in a new tab)
- 计算签名 (opens in a new tab)
- 拼接Authorization (opens in a new tab)
以上为开发者请求腾讯云商付的签名步骤伪代码,腾讯云商付回调通知开发者的签名验签也采用相同算法和步骤,具体参考 回调验签 (opens in a new tab)。
签名和验签的具体实现代码参考 JAVA示例 (opens in a new tab)、PHP示例 (opens in a new tab)、GO示例 (opens in a new tab)。
2.2 业务开发配置
2.2.1 腾讯云商付业务线支付通道资料配置
- 参考 配置业务线的通道资料
2.2.2 腾讯云商付商户进件或录入支付通道资料
- 参考 配置收单商户
注:在未配置腾讯云商付业务线资料和腾讯云商付商户资料时,为了降低接口接入调试的门槛,可在沙箱环境发起相关接口对接调试,具体参考 沙箱环境调试 (opens in a new tab)。 沙箱环境的API地址和生产环境一致,区别在于开发者参数,需要在腾讯云商付管理后台 "开发者参数" 菜单 "沙箱环境" 获取 主体标识(ocode)、Secret ID、腾讯云商付公钥,并设置主体公钥。
3. 快速接入
3.1 业务流程图(预下单模式)
重点步骤说明:
- 步骤 1.1: 业务方调用 新增付款方 (opens in a new tab) 为每个收单商户创建付款方ID。其中
ChannelSubMerchantId
为收单的商户IDChannelName
传后续收款的通道(如 CMBJYGJ)PayerBankNo
如果传入,则限制转账时只能由该卡号转入对应收款方账号(正常无需关注)PayerName
传自定义的名称
备注:在新增付款方前,需要判断ChannelSubMerchantId 是否已经支持对应通道,可通过接口 商户进件结果查询 (opens in a new tab) 查询。根据外部商户ID、通道名(如 CMBJYGJ) 查询进件情况,如果没有进件过通道,会返回
{
"Response": {
"RequestId": "",
"Result": null,
"ErrCode": "MERCHANT.DATA_NOT_EXIST",
"ErrMessage": "未找到该商户信息"
}
}
-
步骤 2.4: 业务方系统调用 预下单 (opens in a new tab) 生成支付参数。
-
步骤 2.8: 业务方应用将预下单返回的支付参数传入腾讯云商付收银台SDK,进入收银台支付流程。
-
步骤 2.14: 用户复制转账支付的收款账号等信息,进入银行网站或者app发起转账。
-
步骤 2.15: 用户支付成功后,开发者可接收到腾讯云商付的支付结果通知,通知API参考 支付成功通知 (opens in a new tab)
-
步骤 2.18: 开发者在没有收到腾讯云商付支付结果通知的情况下需要主动调用 订单查询 (opens in a new tab)接口。由于支付通知可能存在延迟,以及通知在失败时腾讯云商付只会尽最大努力重试有限次数,不可只依赖通知,开发者必须接入订单查询API作为兜底。
3.2 业务流程图(免下单模式)
重点步骤说明:
- 步骤 1.1: 业务方调用 新增付款方 (opens in a new tab) 为每个收单商户创建付款方ID。其中
ChannelSubMerchantId
为收单的商户IDChannelName
传后续收款的通道(如 CMBJYGJ)PayerBankNo
如果传入,则限制转账时只能由该卡号转入对应收款方账号(正常无需关注)PayerName
传自定义的名称
备注:在新增付款方前,需要判断ChannelSubMerchantId 是否已经支持对应通道,可通过接口 商户进件结果查询 (opens in a new tab) 查询。根据外部商户ID、通道名(如 CMBJYGJ) 查询进件情况,如果没有进件过通道,会返回
{
"Response": {
"RequestId": "",
"Result": null,
"ErrCode": "MERCHANT.DATA_NOT_EXIST",
"ErrMessage": "未找到该商户信息"
}
}
-
步骤 2.4: 用户复制转账支付的收款账号等信息,进入银行网站或者app发起转账。
-
步骤 3.2: 用户支付成功后,开发者可接收到腾讯云商付的支付结果通知,通知API参考 支付成功通知 (opens in a new tab)
-
步骤 3.9: 开发者如果发现用户转账的金额大于业务订单金额(也就是多转了),可调用 订单退款申请 (opens in a new tab)接口,将多转的部分进行退款。