$val) { if (!in_array($key, $filter)) { $tempArr[strtolower($key)] = strtolower($val); } } ksort($tempArr); $keyVal = ''; foreach ($tempArr as $key2 => $val2) { $keyVal .= $key2 . $val2; } $keyVal = $keyVal . $payKey; $mysgin = strtolower(md5($keyVal)); return $mysgin; } /** * 只对key value 排序 不拼KEY 不 MD5 * @param array $requestData * @param array $filter * @return string */ private static function keySortMd5Filter(array $requestData,array $filter=[]):string { $tempArr = []; foreach ($requestData as $key => $val) { if (!in_array($key, $filter)) { $tempArr[$key] = $val; } } ksort($tempArr); $keyVal = ''; foreach ($tempArr as $k => $val) { $keyVal .= $k . "=" . $val . "&"; } return $keyVal; } /** * @param array $requestData * @param string $split * @param array $filter * @return string */ public static function valueKeySortSplitFilter(array $requestData,string $split='|',array $filter=[]):string { $tempArr = []; foreach ($requestData as $key => $val) { if (!in_array($key, $filter)) { $tempArr[$key] = $val; } } ksort($tempArr); $keyVal = ''; foreach ($tempArr as $k => $val) { $keyVal .= $val . $split; } return trim($keyVal,$split); } /** * 根据用户指定的顺序排列 用value拼接 * @param array $requestData * @param array $userSort * @param string $split * @return string */ public function userSortValueSplitFilter(array $requestData, array $userSort, string $split = '|'): string { $keyVal = ''; foreach ($userSort as $r) { if (array_key_exists($r, $requestData)) { $keyVal .= $requestData[$r] . $split; } } return trim($keyVal, $split); } /** * 使用指定的一些字段签名拼接 * @param array $requestData * @param array $userParam * @param string $split * @return string */ public function userParamSplitKeyValue(array $requestData,array $userParam,string $split='|'):string { $tempArr = array_filter($requestData, function ($k) use ($userParam) { return in_array($k, $userParam); }, ARRAY_FILTER_USE_KEY); ksort($tempArr); $keyVal = ''; foreach ($tempArr as $k => $val) { $keyVal .= $k . "=" . $val . $split; } return trim($keyVal, $split); } }