签名算法
签名生成步骤
设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
在stringA最后拼接上key(商户密钥)得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
示例
例如请求参数如下:
{
"alias": "test alias",
"callbackUrl": "https://test.com",
"checkOut": true,
"countryId": "MEX",
"currency": "MXN",
"customerName": "Aaliyah Rogers",
"description": "payful",
"email": "[email protected]",
"hasDispute": true,
"hasRefund": false,
"hasSingedLong": true,
"merId": "8102048462634665",
"merOrderNo": "2025120214223996386811745",
"newUser": false,
"nonceStr": "b2a2e2c8a7a149b6ba9103ab513730d3",
"orderAmount": "200",
"payProduct": "18",
"productName": "testName",
"productQuantity": 10,
"receiverAddressExtra": "Apt 2",
"receiverAddressMain": "Sample street 357",
"receiverCity": "Example city",
"receiverCountry": "MXN",
"receiverPhone": "1234567890",
"receiverProvince": "Example state",
"receiverZipCode": "01254",
"returnUrl": "https://www.bing.com/"
}分配的key为:lcescKqpjVtM2cz1FDsoQwgWpV7l12ct
根据规则拼接字符串得到待签名的字符串:
最终签名结果
最终请求参数
签名SDK使用
SDK下载见“字典资源>下载”-“签名SDK”
将“payful-sign”jar包引入自己的项目(deploy到maven私服)
通过com.payful.util.PayfulSignUtil#createSign(Map<String, Object> params, String key)方法完成签名操作。(参数1:Map<String, Object> ;参数2:商户密钥)
签名/验签Demo
最后更新于