如题
微信支付要提交的xml中 的sign 应该怎样生成呢呢?
官方直说要md5 没说要有哪些内容呀?
是应该怎样的逻辑呢?
如题
微信支付要提交的xml中 的sign 应该怎样生成呢呢?
官方直说要md5 没说要有哪些内容呀?
是应该怎样的逻辑呢?
官方文档地址:https://pay.weixin.qq.com/wik...
我这里可以简单的给你提供一些代码片段,但是只给你截图,不会直接贴代码,因为官方文档很详细了,你要自己动手。
/**
* 生成签名
* @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
*/
//$arr是xml里面的数组内容,$key是微信支付api那里,自己设置的密钥
public function MakeSign($arr,$key) {
//签名步骤一:按字典序排序参数
ksort($arr);
$string = $this->ToUrlParams($arr);
//签名步骤二:在string后加入KEY
$string = $string . "&key=" . $key;
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
return $result;
}
/**
* 格式化参数格式化成url参数
*/
public function ToUrlParams($arr) {
$buff = "";
foreach ($arr as $k => $v) {
if ($k != "sign" && $v != "" && !is_array($v)) {
$buff .= $k . "=" . $v . "&";
}
}
$buff = trim($buff, "&");
return $buff;
}
就是把之前的那些参数字符串加密~