目录
1.1 公共请求参数
字段 |
字段类型 |
必填 |
字段名称 |
说明 |
appId |
String |
是 |
云商通二代分配的应用ID |
如上送服务商应用ID,验证服务商证书 |
spAppId |
String |
否 |
云商通二代分配的服务商应用ID |
|
transCode |
String |
是 |
接口代码 |
|
format |
String |
否 |
仅支持JSON |
json |
charset |
String |
是 |
请求使用的编码格式,utf-8 |
UTF-8 |
signType |
String |
是 |
商户生成签名字符串所使用的签名 算法类型 |
比如:SM3withSM2 |
sign |
String |
是 |
商户请求参数的签名串 |
|
transDate |
String |
是 |
发送请求的日期,格式"yyyyMMdd" |
20240202 |
transTime |
String |
是 |
请求时间 |
141333 |
version |
String |
是 |
调用的接口版本 |
1.0 |
bizData |
String |
是 |
请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
1.2 公共响应参数
字段 |
字段类型 |
必填 |
字段名称 |
说明 |
code |
String |
是 |
调用结果返回码 |
00000-成功 |
msg |
String |
是 |
调用结果返回码描述 |
|
sign |
String |
是 |
商户请求参数的签名串 |
|
bizData |
String |
是 |
返回参数的集合,最大长度不限,除公共参数外所有返回参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
1.3 回调通知说明
1.3.1 异步通知公共参数
字段 |
字段类型 |
必填 |
参数名称 |
说明 |
notifyTime |
Date |
是 |
通知时间 |
格式为yyyy-MM-dd HH:mm:ss |
notifyId |
String |
是 |
通知校验ID |
|
charset |
String |
是 |
编码格式 |
编码格式, utf-8 |
version |
String |
是 |
接口版本 |
调用的接口版本1.0 |
signType |
String |
是 |
签名类型 |
签名算法类型,如:SM3WithSm2 |
sign |
String |
是 |
签名 |
签名串 |
appId |
String |
是 |
应用ID |
分配给开发者的应用ID |
spAppId |
String |
否 |
云商通二代分配的服务商应用ID |
|
transCode |
String |
是 |
接口代码 |
与原交易接口代码一致 |
bizData |
String |
是 |
业务参数的集 |
通知参数的集合,最大长度不限,除公共参数外所有通知参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
1.3.2 异步通知机制
1、订单类结果通知规则
(1)当后台通知地址返回success时,则认为通知成功,停止通知。
(2)对于交易时效非常高的场景,建议商户建立主动查询机制【查询订单状态】。
(3)订单后台通知条件:
订单类 |
通知条件 |
说明 |
消费 |
订单成功、订单失败 |
|
担保消费申请 |
订单成功、订单失败 |
|
单会员担保确认 |
订单成功、订单失败 |
|
提现 |
订单成功、订单失败 |
|
转账 |
订单成功、订单失败 |
|
退款 |
订单成功、订单失败 |
|
退票 |
订单成功、订单失败 |
|
划款入账 |
入账成功 |
2、会员类结果通知规则
(1)当后台通知地址返回http的状态为200时,则认为通知成功,将停止通知。
(2)会员通知条件:
会员类 |
通知条件 |
说明 |
企业会员开户审核结果通知 |
开户成功、开户失败 |
|
会员资料补录结果通知 |
营业执照和法人身份证OCR识别对比结果一致、不一致 |
营业执照和法人身份证分别进行OCR识别比对,每次结果变动,均发送通知 |
会员协议签约结果通知 |
签约成功、签约失败 |
3、通知重发规则
(1)同样的通知可能会多次发送给接收方系统。接收方系统必须能够正确处理重复的通知。
(2)后台通知交互时,如果接收方反馈给通知方的应答不符合规范或超时(链接保持5s),通知方服务器会不断重发通知,直到收到接收方正确的反馈或超过6小时。一般情况下,6小时以内完成7次通知(通知的间隔频率一般是:5s/15s/1m/10m/30m/1h/6h),但通知方不保证通知最终一定能成功。
(3)在订单状态不明或者没有收到支付结果通知的情况下,建议接收方主动调用【交易结果查询】确认订单状态。
1.4 验签机制/敏感信息加密说明
1.4.1 验签机制
1. 筛选并排序
获取所有请求参数,不包括字节类型参数,如文件、字节流,剔除sign、signType字段,剔除值为空的参数,并按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。
2. 拼接
将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,此时生成的字符串为待签名字符串。
3. 将签名参数(sign)使用 base64 解码为字节码串。
4. 调用验签函数:使用各自语言对应的Sm2签名验证函数,传入待验签字段、服务商或者客户公钥、签名内容(经过base64解码)进行验签,根据返回结果判定是否验签通过。
1.4.2 敏感信息加解密
客户端与服务端之间传递敏感信息,请使用SM4 对称加密算法进行加密后传输。
SM4加密:将传入的密钥(secretKey)的字节数组作为因子通过SHA1PRNG生产一个64位的随机源,构造出原始密钥,通过ECB模式对明文数据进行加密,加密后的字节码转为16进制大写输出。
1.4.3 签名验签API服务
独立部署一个api服务,加解密调用此服务,方法见附件:
【签名验签API_V2】https://kdocs.cn/l/cnO6tubee5wq