查询招行公钥API

请求地址

生产环境

https://b2b.cmbchina.com/CmbBank_B2B/UI/NetPay/DoBusiness.ashx

联调环境

http://121.15.180.72/CmbBank_B2B/UI/NetPay/DoBusiness.ashx

请求报文

报文的参数名:jsonRequestData,参数值JSON格式见下表

参数名称 JSON键值 类型(长度) 必填 描述 示例
接口版本号 version String(3) M 固定为”1.0” 1.0
参数编码 charset String(8) M 固定为“UTF-8” UTF-8
报文签名 sign String M 使用商户支付密钥对reqData内的数据进行签名
签名算法 signType String M 固定为”SHA-256” SHA-256
请求数据 reqData
请求时间 dateTime String(14) M

商户发起该请求的当前时间,精确到秒

格式:yyyyMMddHHmmss

20160623101430
交易码 txCode String M 固定为“FBPK” FBPK
商户分行号 branchNo String(4) M 商户分行号,4位数字 0755
商户号 merchantNo String(6) M 商户号,6位数字 002346

请求示例

查询报文示例:

{
  "version":"1.0",
  "charset":"UTF-8",
  "sign":"见签名处理章节",
  "signType":"SHA-256",
  "reqData":{      
       "dateTime":"20160623101430",   
       "txCode":"FBPK",          
       "branchNo":"0755",
       "merchantNo":"002346",
       }
 }

1. 表单组织:

<form action="请求地址" method="post" >
    <input type="hidden" name="jsonRequestData" value='以上json字符串' /> 
</form>

2. 待签名字符串(未包含支付密钥):

branchNo=0755&dateTime=20160623101430&merchantNo=002346&txCode=FBPK

响应报文

参数名称 JSON键值 类型(长度) 必填 描述 示例
接口版本号 version String(3) M 固定为”1.0” 1.0
参数编码 charset String(8) M 固定为UTF-8 UTF-8
报文签名 sign String M 使用商户支付密钥对rspData内的数据进行验签
签名算法 signType String M 固定为”SHA-256” SHA-256
应答数据 rspData
处理结果 rspCode String M
SUC0000:请求处理成功
其他:请求处理失败
SUC0000
详细信息 rspMsg String M 失败时返回具体失败原因
招行公钥 fbPubKey String M 用Base64编码的招行公钥
响应时间 dateTime String(14) M
银行返回该数据的时间
格式:yyyyMMddHHmmss
20160623101430

响应示例

1. 正常json报文组织:

{
  "version":"1.0",
  "charset":"UTF-8",
  "sign":"见签名处理章节",
  "signType":"SHA-256",
  "reqData":{                   
       "rspCode":"SUC0000",
       "rspMsg":"查询成功。",
       "fbPubKey":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8IdQSg5ryvST/IC5aAjNY5sFw+qhVkyFKGqQFQCZfXa9YqsbhZFhSBZHLUw+TIJO8axH7Sa+OM4AEmoddvaPrnXRB7XJmUQMXj77AnGStzzJfQddMGMJiKa4KT6wKsmQxjC3NdKrYLVQntb9qD+M3AqIK5WBvbh/ix5GUTmUQ+QIDAQAB",
       "dateTime":" 20160623101430"
       }
 }

待验签字符串(未包含支付密钥):
dateTime=20160623101430&fbPubKey=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8IdQSg5ryvST/IC5aAjNY5sFw+qhVkyFKGqQFQCZfXa9YqsbhZFhSBZHLUw+TIJO8axH7Sa+OM4AEmoddvaPrnXRB7XJmUQMXj77AnGStzzJfQddMGMJiKa4KT6wKsmQxjC3NdKrYLVQntb9qD+M3AqIK5WBvbh/ix5GUTmUQ+QIDAQAB&rspCode=SUC0000&rspMsg=查询成功。

2. 异常json报文组织:

{
  "version":"1.0",
  "charset":"UTF-8",
  "sign":"见签名处理章节",
  "signType":"SHA-256",
  "reqData":{                   
       "rspCode":"DCB0003",
       "rspMsg":"DCB0003 请求报文JSON格式错误!",		
       "dateTime":"20160817141216"
       }
 }

待验签字符串(不包含支付密钥):
dateTime=20160817141537&rspCode=DCB0003&rspMsg=DCB0003 请求报文JSON格式错误!

错误码

错误码 错误描述 解决方案
DCB0001 DCB0001 贵方发送错误报文数太多,已被限制访问! 异常操作错误太多,请根据之前的错误反馈进行更改,限制将在一定时间后自动解除
DCB0002 DCB0002 请求报文数据不能为空! 输入参数jsonRequestData拼写正确,并且值非空
DCB0003 DCB0003 请求报文JSON格式错误! 输入参数jsonRequestData为合法的JSON格式
DCB0004 DCB0004 请求报文数据有误;请求报文长度过长 缩短输入参数jsonRequestData内容
DCB0004 DCB0004 请求报文数据有误:……
错误消息有以下这些情况,请根据对应提示修改。
接口版本号version值不正确
参数编码charset值不正确
签名sign不能为空
签名算法signType值不正确
请求数据reqData不能为空
时间戳dateTime位数超长或者为0
时间戳dateTime不能为空
交易功能码txCode位数超长或者为0
交易功能码txCode不能为空
商户号merchantNo位数超长或者为0
商户号merchantNo不能为空
分行号branchNo位数超长或者为0
分行号branchNo不能为空
DCB0005 DCB0005 商户未开通接入平台功能;商户号:…… 商户号需要开通接入平台功能
DCB0006 DCB0006 源IP地址不在商户IP白名单中;商户号:…;IP地址:… 商户需要提供IP添加到白名单中
DCB0007 DCB0007 调用功能不可用;调用功能代码:…… 调用的功能不支持,请输入支持的功能代码
DCB0008 DCB0008 签名验证失败:……
错误消息有以下情况,请根据对应提示修改。
签名时间戳格式不正确!
签名时间错误,签名已经失效。
验签异常:……
DCB0010 DCB0010商户未设置密钥;商户号:…… 商户未设置支付密钥,请登录商户结账处理系统设置。
DCB0019 DCB0019 企业网银签名异常:…… 请联系招行相关技术支持人员
DCB0020 DCB0020 服务器繁忙,请稍后再试。 当前服务器负载达到上限,请稍后再试。
DCB0021 DCB0021解析返回报文失败 请联系招行相关技术支持人员

FAQ

Q1. 招行公钥是否会定期更换,应该如何获取和使用?

1、招行公钥会定期更换,更换频率较低。商户可以通过API每天取一次招行公钥后存在本地,每次验签时使用即可;

2、建议每天凌晨2:15发起查询招行公钥请求更新公钥,如果获取招行公钥失败,或者查询公钥返回为空或者异常,建议继续使用本地缓存的公钥,最好有可手动更新招行公钥的机制。

关于网站迁移公告


为提供更优质的开发技术支持,本网站已于2019年8月12日正式迁移至新域名http://openhome.cmbchina.com/paynew/pay/Home,敬请访问并收藏。原网站域名已停止更新维护,请以新网站提供的文档信息为准。

由此给您带来的不便,敬请谅解。


招商银行一网通支付技术支持小组

2019年8月12日