Example #1
0
 /**
  * 获取签名
  * @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;
 }