代收签名算法
代收签名算法
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串 stringA。
第二步,在stringA最后拼接上key得到stringSign字符串,并对stringSign进行MD5运算,再将得到的字符串所有字符转换为大写。
代收提交时签名Demo( php代码示例,其它编程语言仅做参考 )
<?php
$ArrayField = [
'version' => '1.0.0',
'memberid' => '10001',
'orderid' => "1000120200202202020",
'amount' => '100',
'orderdatetime' => "",
'notifyurl' => 'http://xxx.xxx.com/notifyurl.php',
'paytype' => 'WXGZH',
'signmethod' => 'md5',
];
ksort($ArrayField); //按照参数名ASCII码从小到大排序
$md5key = '123123'; //md5密钥
$stringA = "";
foreach($ArrayField as $key => $value){
$stringA .= $key."=".$value."&";
}
$stringA = substr($stringA,0,-1); //去掉最后一个 & 字符
$ArrayField["sign"] = strtoupper(md5($stringA.$md5key)); //拼接密钥后,md5加密后转为大写
?>代收回调时签名Demo( php代码示例,其它编程语言仅做参考 )
回调里的所有参数,只要存在,不论值是否为空都要参与签名
代收查询提交时签名Demo( php代码示例,其它编程语言仅做参考 )
查询响应/回调时签名Demo( php代码示例,其它编程语言仅做参考 )
回调里的所有参数,只要存在,不论值是否为空都要参与签名