Sign签名生成规则
1、除sign字段外,所有参数按照字段名的ascii码从小到大排序后使用QueryString的格式(即key1=value1&key2=value2…)拼接而成,空值不传递,不参与签名组串。
2、签名原始串中,字段名和字段值都采用原始值,不进行URL Encode。
3、拼接好的字符串+key 取MD5值
PHP签名生成示例:
*$param 下单参数
*$userkey 商户密钥
*/
private function getKsySign($param,$userkey){
ksort($param); //排序post参数
reset($param); //内部指针指向数组中的第一个元素
$signtext='';
foreach ($param AS $key => $val) { //遍历POST参数
if ($val == '' || $key == 'sign') continue; //跳过这些不签名
if ($signtext) $signtext .= '&'; //第一个字符串签名不加& 其他加&连接起来参数
$signtext .= "$key=$val"; //拼接为url参数形式
}
$newsign=md5($signtext.$userkey);
return $newsign;
}