签名算法
签名生成步骤
设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
在stringA最后拼接上key(商户密钥)得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
示例
例如请求参数如下:
{
"countryId": "COL",
"currency": "COP",
"customerAccount": "3720000264",
"merId": "8301000002750275",
"merOrderNo": "merOrderNo",
"nonceStr": "string",
"orderAmount": "30000",
"payProduct": "08",
"nonceStr": "4cKcL83FIsDgjAi"
}根据规则拼接字符串得到待签名的字符串:
最终签名结果
最终请求参数
签名SDK使用
SDK下载见“字典资源>下载”-“签名SDK”
将“supefina-sign”jar包引入自己的项目
通过com.supefina.sign.SupefinaSignUtils#sign(java.lang.Object,java.lang.String)方法完成签名操作。(参数1:请求参数json对象;参数2:商户密钥)
签名Demo
验签demo
最后更新于