where('status',1)->orderBy('id','desc')->get(); foreach ($result as $key => $value) { $this->InterruptCall($value); } } //主动挂断通话 public function InterruptCall($request) { //参数缺失 if(!$request->recorder_id||!$request->trade_no){ return false; } $pay = new PayLog(); $pay->type = 'InterruptCall'; $pay->trade_no= $request->trade_no; $time = time()-strtotime($request->begin_time); $Remaining_time = $request->duration*60 -$time; if($Remaining_time>0){ $pay->remark = '剩余时间'. $Remaining_time.'秒'; $pay->save(); return false; } $request->Remaining_duration = 0; $request->save(); $data = [ // 以下代码以ax为例,选填参数以实际需求,对应填写 "corp_key" => "7574596477198833",//企业账户key 必填 "request_id" => $request->trade_no,// 企业每个请求Id唯一,如果是同一个请求重复提交,则Id保持相同 必填 "recorder_id" => $request->recorder_id,//企业本次通话唯一标识 ]; $data['ts'] = time(); $data['sign'] = $this->sign($data, '8uM2Mxe7EaCU8XXW4FHjaq6m8N3794Xv');//密钥信息 // print_r(json_encode($data)); $url = 'http://124.160.62.210:9092/ykt-open/hold/hangup2';//请求地址 $curl = curl_init($url); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_HTTPHEADER => array( "Accept: */*", "Accept-Encoding: gzip, deflate", "Cache-Control: no-cache", "Connection: keep-alive", "Content-Type: application/json;charset=utf-8", "cache-control: no-cache" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { $pay->remark = '错误:'.$err; $pay->save(); return false; } else { $response = json_decode($response,true); $pay->remark = $response; $pay->save(); return true; } } function sign($data, $key){ if (isset($data['sign'])) { unset($data['sign']); } $data_str = $this->signStr($data) . '&corp_secret=' . $key; return md5($data_str); } function signStr($data){ $array_keys = array_keys($data); asort($array_keys); $newData = []; foreach ($array_keys as $v) { if ($v && !empty($data[$v])) { $newData[] = "{$v}={$data[$v]}"; } } return implode('&', $newData); } }