2.接口规则


2.1 协议规则

传输方式

为保证交易安全性,采用HTTPS传输

提交方式

采用POST方式提交

数据格式

请求以FORM格式提交,返回为标准的JSON格式

字符编码

统一采用UTF-8字符编码

签名算法

MD5/RSA/SM2

签名要求

请求和接收数据均需要校验签名,详细方法请参考安全规范

 

2.2 参数规定

报文规范中各参数如果不可空,则必须填写,否则报错。如果参数为空,那么该参数可以在JSON报文中出现,也可以不出现。所有金额以分为单位。

接口请求以HTTPS POST的KEY&VALUE格式提交,返回为标准的JSON格式,参考接口参数对接。
如无特殊声明,接口的输入参数和输出参数编码全部统一为UTF-8编码方式,所有数据字段value值均使用urlencode方式处理,如是tomcat,IIS或apache服务器,则会自动进行urldecode处理。

2.3 安全规范

一.RSA(SHA1WithRSA)签名逻辑
A.签名字符串为除了sign之外的其他非空字段组成键值对
B.所有参与签名的字段,按字段名的ASCLL码从小到大排序后,使用URL的键值对的格式(即key1=value1&key2=value2)拼接成字符串string
如appid=00000051
cusid=990581007426001
randomstr=82712208
signtype=RSA
trxid=112094120001088317
version=11
排序后的字符串:
string=”appid=00000051&cusid=990581007426001&randomstr=82712208&signtype=RSA&trxid=112094120001088317&version=11”;

C.用商户的RSA私钥进行签名
sign=SybUtil.rsaSign(string,cusRsaPrivateKey,”utf-8”);
如测试私钥
cusRsaPrivateKey=”MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJgHMGYsspghvP+yCbjLG43CkZuQ3YJyDcmEKxvmgblITfmiTPx2b9Y2iwDT9gnLGExTDm1BL2A8VzMobjaHfiCmTbDctu680MLmpDDkVXmJOqdlXh0tcLjhN4+iDA2KkRqiHxsDpiaKT6MMBuecXQbJtPlVc1XjVhoUlzUgPCrvAgMBAAECgYAV9saYTGbfsdLOF5kYo0dve1JxaO7dFMCcgkV+z2ujKtNmeHtU54DlhZXJiytQY5Dhc10cjb6xfFDrftuFcfKCaLiy6h5ETR8jyv5He6KH/+X6qkcGTkJBYG1XvyyFO3PxoszQAs0mrLCqq0UItlCDn0G72MR9/NuvdYabGHSzEQJBAMXB1/DUvBTHHH4LiKDiaREruBb3QtP72JQS1ATVXA2v6xJzGPMWMBGQDvRfPvuCPVmbHENX+lRxMLp39OvIn6kCQQDEzYpPcuHW/7h3TYHYc+T0O6z1VKQT2Mxv92Lj35g1XqV4Oi9xrTj2DtMeV1lMx6n/3icobkCQtuvTI+AcqfTXAkB6bCz9NwUUK8sUsJktV9xJN/JnrTxetOr3h8xfDaJGCuCQdFY+rj6lsLPBTnFUC+Vk4mQVwJIE0mmjFf22NWW5AkAmsVaRGkAmui41Xoq52MdZ8WWm8lY0BLrlBJlvveU6EPqtcZskWW9KiU2euIO5IcRdpvrB6zNMgHpLD9GfMRcPAkBUWOV/dH13v8V2Y/Fzuag/y5k3/oXi/WQnIxdYbltad2xjmofJ7DbB7MJqiZZD8jlr8PCZPwRNzc5ntDStc959”,
则上面字符串加密后的
sign=”ce6EAOj4rhoBMJM5MJCNG4qQ%2FCVMTWkoRuSGpSzRAnD3U3V5QyHkQUEej2eZXRaa%2BqSbw2%2FIJJSPV0sPuAia1%2Bccb7OnvxyZqkV9wQyimX6qAMz0K%2BUWFhQ5McCcQ%2FXsFhhezoVd5QgL7PtdvuK1AtjuzA3J9yzNmwuPssPnKnc%3D”;
D.请求接口成功后通联系统返回JSON字符串数据,把除sign之外的其他所有非空字段组成键值对,进行同样的排序和组装处理,并用通联的公钥进行验签
数字营销测试公钥:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGmQIS4h5DjhqPii8jRNNMKyEz72ihvck0JqZ0Z89ouHkO4Wa3xjNyxtXoUn8w6ycZj6QpOchuwcmGw5VEsOeIsTP05ShO07liBLpS/uwOvLJ3lmoDCf3+Oym6Saa3h1oGdhkqarKf+009zwraw2Lvw6Q5010ac/4r9cl9/nacawIDAQAB

数字营销生产公钥:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDyfF3UHyNw8JcJyDkgiplUiHt0dNWbY77eUfPt22WJc/WBCke3hWRQd3saJKFxaMuO3y2/pDJhW+yedRDduT1Mn7wZ6tXIQrSLbSZOrfAHSwOSCWa1ciSu27zqCcyVS70X//VwCIheEF4Gd+z0MJzTNj1cqg+yfzBOsKdoU9xo2QIDAQAB
二.SM2国密签名逻辑
A.签名字符串为除了sign之外的其他非空字段组成键值对
B.所有参与签名的字段,按字段名的ASCLL码从小到大排序后,使用URL的键值对的格式(即key1=value1&key2=value2)拼接成字符串string
如appid=00000051
cusid=990581007426001
randomstr=75016315
signtype=SM2
trxid=112094120001088317
version=11
排序后的字符串:
string=”appid=00000051&cusid=990581007426001&randomstr=75016315&signtype=SM2&trxid=112094120001088317&version=11”;

C.用商户的SM2私钥进行签名
先获取私钥明文PrivateKey privkey = SmUtil.privKeySM2FromBase64Str(SM2PPRIVATEKEY);
sign=SmUtil.signSM3SM2RetBase64(privkey,appid, string.getBytes("UTF-8"));//签名;
如测试私钥
SM2PPRIVATEKEY=”MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgNqz1EieIP8QVzV7vEmx5e8f7XN7/MIzoeXgEinxcG0agCgYIKoEcz1UBgi2hRANCAAQNfkEgaCQ4cdZ4aD2LWMcnkk5LALQfL05oY8x8XQDIyUM44N15YcTwtFNvHYgyeNRa93vlEUutp935n6rp4yuf”,
则上面字符串加密后的
sign=”m4ki0xZ%2B19LtqjuyG8Qb0ytD3Q8B166mboCeg%2B6Ar1Z4XmQB14LrcfddkM121EbroDDnJ17bbJAH%2FS%2B8jus9iQ%3D%3D”;
D.请求接口成功后通联系统返回JSON字符串数据,把除sign之外的其他所有非空字段组成键值对,进行同样的排序和组装处理,并用通联的公钥进行验签
数字营销测试公钥:
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEyahVfna879jxfashrfAvYAw7mBZNK/tZO6mM9tYlCKMo/NwT7EqnTx+Ow2dAOvVvVxjQaONC7wXElmDDpRKhPg==
数字营销生产公钥:
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE81HDHWMqGVlwJ7ZYDo4O0pIc0AL6Zp83/cJKLQwL2U8hVXRVGn1il1xSlMceDLJej9sjGcwvSjLN0O2LsyPaQA==
附:详细签名及验签可参考对应java开发demo的SybUtil.unionSign及SybUtil.validSign统一签名及统一验签工具方法。

 

 

 

2.4 网络关系配置

对接方开通通知接口网络关系用(通联调用对接方的接口):
产线环境:
101.132.34.44、 106.14.134.117、47.103.129.98、 106.15.93.89、 47.100177.170、 139196.165.11、 139.224.129.121、47.101.196.64
测试环境:
47.100.220.163、106.15.190.45、47.116.118.115
二、对接方开通接口调用网络关系用(对接方调用通联的接口):
产线环境:
dms-api.shopoint.cn(lP:47.102.253.125 端口:443)
测试环境:
dms-api-test.shopoint.cn (lP: 47.103.163.7 端口:443)


卜子超buzc 2025年4月2日 17:03 收藏文档