必读
<p>编码:UTF-8
请求方式:POST
请求数据格式:application/x-www-form-urlencoded
返回数据格式:application/json
参数名称和参数说明中规定的固定值必须与列表中完全一致(大小写敏感)</p>
<p>签名规则
1.将所有发送或者接收的数据中非空、非sign字段按照参数名ASCII码从小到大排序(字典序),使用URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串A;
2.在字符串A后面直接拼接"Api秘钥",生成字符串B;
3.最后将字符串B进行MD5运算,取大写,生成最终的签名sign值。 </p>
<p>签名及验签函数PHP示例 </p>
<p>class PayUtils {
/*<em>
@param array $data 需要签名的字符串
@param $apikey 私钥
return 签名结果
</em>/ static public function makeSign(array $data, $apikey) {
//数组排序
ksort($data);
//拼接字符串
$sign_str = &#039;&#039;; foreach ($data as $k=>$val) { if($k == "sign" || $k == "sign_type"
|| $val === null || $val === &#039;&#039;)continue; else $sign_str.=$k."=".$val."&";
}
//去掉最后一个&字符
$sign_str = substr($sign_str,0,-1);
//拼接apikey
$sign_str = $sign_str.$apikey;
//md5加密并转换大写
return strtoupper(md5($sign_str));
}
/*<em>
@param $data 需要验证签名的数据
@param $key 私钥
return 签名验证结果
</em>/ static public function signVerify($data,$key) {
$sign = $data[&#039;sign&#039;];
$mysgin = self::makeSign($data,$key); if($mysgin == $sign) { return true;
} else { return false;
}
}
} </p>