$code_num, 'timestamp'=> round(microtime(true) * 1000), ]; $sign=$this->sign($data,$this->channelSecret); $data['sign']=$sign; $query_string = http_build_query($data); $send_data=[ 'code_num'=>$code_num, 'user_name'=>$user_name, 'user_id_number'=>$user_id_number, ]; $Tools=new Tools(); return $Tools->Post($this->BaseUrl.'order/getVerifyCode?'.$query_string,$send_data,'查询核销码','中康'); } public function HandleTransferCode($type,$code_num,$user_name,$user_id_number){ $data=[ 'code_num'=>$code_num, 'timestamp'=> round(microtime(true) * 1000), ]; $sign=$this->sign($data,$this->channelSecret); $data['sign']=$sign; $query_string = http_build_query($data); $send_data=[ 'type'=>$type, 'code_num'=>$code_num, 'user_name'=>$user_name, 'user_id_number'=>$user_id_number, ]; $Tools=new Tools(); return $Tools->Post($this->BaseUrl.'order/completeVerify?'.$query_string,$send_data,'操作核销码','中康'); } function sign($params, $channelSecret) { // 移除可能存在的sign参数 unset($params['sign']); // 对参数键名进行字典顺序排序 ksort($params); // 拼接排序后的参数 $paramStr = ''; foreach ($params as $key => $value) { if ($key != 'sign') { $paramStr .= $key . $value; } } // 生成签名 try { $calcSign = hash_hmac('sha256', $paramStr, $channelSecret, false); return strtoupper($calcSign); } catch (Exception $ex) { error_log("加密失败: " . $ex->getMessage()); return ''; } } }