$biz_params =[
'shop_order_id'=>$shop_order_id
];
function marshal(array $param){
rec_ksort($param);
$s = json_encode($param, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
return $s;
}
function rec_ksort(array &$arr) {
$kstring = true;
foreach ($arr as $k => &$v) {
if (!is_string($k)) {
$kstring = false;
}
if (is_array($v)) {
rec_ksort($v);
}
}
if ($kstring) {
ksort($arr);
}
}
function Douyinsign(string $appKey, string $appSecret, string $method, string $timestamp, string $paramJson): string {
$paramPattern = 'app_key' . $appKey . 'method' . $method . 'param_json' . $paramJson . 'timestamp' . $timestamp . 'v2';
$signPattern = $appSecret . $paramPattern . $appSecret;
return hash_hmac("sha256", $signPattern, $appSecret);
}
$paramJson = marshal($biz_params);
$appid = 'xxxx';
$key = 'xxxxx'
$method = 'order.orderDetail';
$timestamp = time();
$sign = Douyinsign($appid,$key,$method,$timestamp,$paramJson);