/** * 获取签名 * @param array $input 关联数组 * @param int $expire 过期时间 * @return mixed $value 执行成功返回签名,否则返回false */ public static function getRequesSignature($input, $expire = 21600) { if (is_array($input) == false) { return false; } //计算过期时间 $expiredDate = time() + $expire; // 对传入数组进行转换,将其key值转成小写,形成新的关联数组 $newInput = array(); foreach ($input as $key => $value) { // 转成小写 $key = strtolower($key); $newInput[$key] = $value; } // 获取新数组的key $keys = array_keys($newInput); // keys数组排序 natsort($keys); // input 的key不区分大小写 $str = ""; foreach ($keys as $key) { $str .= $key . $newInput[$key]; } $str .= MConst::EXPIRATION_DATE . $expiredDate; $signature = MUtils::getSha1Signature($str); // 在传入数组后添加两个新值: expiration_date digital_signature $input["expiration_date"] = $expiredDate; $input["digital_signature"] = $signature; return $input; }