ci = & get_instance(); $params['app_id'] && $this->id = $params['app_id']; $params['app_key'] && $this->key = $params['app_key']; } /** * 商务号绑定 * @param $mobile 手机号 * @param $seq_id 唯一请求单号 * @param $middleNumber 虚拟号码 * @param $bindTime 绑定时间 */ public function SWbind($mobile,$seq_id,$middleNumber,$bindTime=10){ $url=$this->api_url.'bindMobile.do'; $spId=$this->id; //teleii平台分配的商户id $spKey=$this->key; //teleii平台分配的商户key $timestamp=time().'000'; //毫秒级的时间戳 $seqId=$seq_id; //唯一订单 $virtualMobile=$middleNumber; //Md5(key+id+seqId+timestamp+fm+tm); 生成签名 $sign_source=$spKey.$spId.$seqId.$timestamp.$mobile.$virtualMobile.$bindTime; $sign=md5($sign_source); //拼接HTTP请求参数 $curlparams='id='.$spId.'×tamp='.$timestamp.'&seqId='.$seqId.'&bindMobile='.$mobile.'&bindTime='.$bindTime.'&virtualMobile='.$virtualMobile.'&sign='.$sign; //发起HTTP请求 $result=$this->postUrlForCalling($url, $curlparams); $data = json_decode($result,true); if(!$data['result']){ return ['code'=>1,'msg'=>'绑定成功','data'=> $data]; }{ debug_log('function:'.__FUNCTION__,$this->log_file); debug_log('post_data:'.$curlparams,$this->log_file); debug_log('result:'.$result,$this->log_file); return ['code'=>0,'msg'=>$data['error'],'t_code' => $data['result']]; } } //解除绑定 public function SWunbind($bindmobile,$virtualMobile){ $url=$this->api_url.'unbindMobile.do'; $spId=$this->id; //teleii平台分配的商户id $spKey=$this->key; //teleii平台分配的商户key $timestamp=time().'000'; //毫秒级的时间戳 //Md5(key+id+timestamp+virtualMobile); 生成签名 $sign_source=$spKey.$spId.$timestamp.$virtualMobile; $sign=md5($sign_source); //拼接HTTP请求参数 $curlparams='id='.$spId.'×tamp='.$timestamp.'&bindMobile='.$bindmobile.'&virtualMobile='.$virtualMobile.'&sign='.$sign; //发起HTTP请求 $result=$this->postUrlForCalling($url, $curlparams); $data = json_decode($result,true); if(!$data['result']){ return ['code'=>1,'msg'=>'解绑成功','data'=> $data]; }{ debug_log('function:'.__FUNCTION__,$this->log_file); debug_log('post_data:'.$curlparams,$this->log_file); debug_log('result:'.$result,$this->log_file); return ['code'=>0,'msg'=>$data['error']]; } } //商户模式查找绑定关系 public function Searchbind($middleNumber){ $url=$this->api_url.'searchBindMobile.do'; $spId=$this->id; //teleii平台分配的商户id $spKey=$this->key; //teleii平台分配的商户key $timestamp=time().'000'; //毫秒级的时间戳 $virtualMobile=$middleNumber; $bindTime=10;//关系绑定10分钟 //Md5(key+id+timestamp+virtualMobile); 生成签名 $sign_source=$spKey.$spId.$timestamp.$virtualMobile; $sign=md5($sign_source); //拼接HTTP请求参数 $curlparams='id='.$spId.'×tamp='.$timestamp.'&virtualMobile='.$virtualMobile.'&sign='.$sign; //发起HTTP请求 $result=$this->postUrlForCalling($url, $curlparams); $data = json_decode($result,true); if(!$data['result']){ return ['code'=>1,'msg'=>'绑定成功','data'=> $data]; }{ debug_log('function:'.__FUNCTION__,$this->log_file); debug_log('post_data:'.$curlparams,$this->log_file); debug_log('result:'.$result,$this->log_file); return ['code'=>0,'msg'=>$data['error']]; } } //绑定关系 public function ABXbind($mobileA, $mobileB,$seq_id,$bindTime=10,$middleNumber=''){ $url=$this->api_url.'autoCallTransferForSp.do'; $spId=$this->id; //teleii平台分配的商户id $spKey=$this->key; //teleii平台分配的商户key $timestamp=time().'000'; //毫秒级的时间戳 $seqId=$seq_id; //唯一订单 $fm=$mobileA; //主叫号码 $tm=$mobileB; //被叫号码 $virtualMobile=$middleNumber; //虚拟号码.创建新关系时,虚拟号码为空,系统自行分配虚拟号码。 $bindTime=$bindTime;//关系绑定时间(单位分钟) //Md5(key+id+seqId+timestamp+fm+tm); 生成签名 $sign_source=$spKey.$spId.$seqId.$timestamp.$fm.$tm; $sign=md5($sign_source); //拼接HTTP请求参数 $curlparams='id='.$spId.'×tamp='.$timestamp.'&seqId='.$seqId.'&fm='.$fm.'&tm='.$tm.'&bindTime='.$bindTime.'&virtualMobile='.$virtualMobile.'&sign='.$sign; //发起HTTP请求 $result=$this->postUrlForCalling($url, $curlparams); $data = json_decode($result,true); if(!$data['result']){ debug_log('function:'.__FUNCTION__,$this->log_file); debug_log('post_data:'.$curlparams,$this->log_file); debug_log('绑定成功result:'.$result,$this->log_file); return ['code'=>1,'msg'=>'绑定成功','data'=> $data]; }{ debug_log('function:'.__FUNCTION__,$this->log_file); debug_log('post_data:'.$curlparams,$this->log_file); debug_log('绑定失败result:'.$result,$this->log_file); return ['code'=>0,'msg'=>$data['error']]; } } //解绑 public function AXBUnbind($mobileA,$mobileB,$middleNumber){ $url=$this->api_url.'unbindCallTransferForSp.do'; $spId=$this->id; //teleii平台分配的商户id $spKey=$this->key; //teleii平台分配的商户key $timestamp=time().'000'; //毫秒级的时间戳 $fm=$mobileA;//主叫号码 $tm=$mobileB;//被叫主码 $vm=$middleNumber; //虚拟号码 //Md5(key+id+timestamp+fm+tm+vm) 生成签名 $sign_source=$spKey.$spId.$timestamp.$fm.$tm.$vm; $sign=md5($sign_source); //拼接HTTP请求参数 $curlparams='id='.$spId.'×tamp='.$timestamp.'&vm='.$vm.'&fm='.$fm.'&tm='.$tm.'&sign='.$sign; //发起HTTP请求 $result=$this->postUrlForCalling($url, $curlparams); $data = json_decode($result,true); if(!$data['result']){ return ['code'=>1,'msg'=>'解绑成功']; }{ debug_log('function:'.__FUNCTION__,$this->log_file); debug_log('post_data:'.$curlparams,$this->log_file); debug_log('result:'.$result,$this->log_file); return ['code'=>0,'msg'=>$data['error']]; } } //获取录音文件 public function getFile($url,$mid,$tag){ $spId=$this->id; //teleii平台分配的商户id $spKey=$this->key; //teleii平台分配的商户key $timestamp=time().'000'; //毫秒级的时间戳 //Md5(key+id+timestamp+fm+tm+vm) 生成签名 $sign_source=$spKey.$spId.$timestamp.$mid; $sign=md5($sign_source); //拼接HTTP请求参数 $curlparams='id='.$spId.'×tamp='.$timestamp.'&mid='.$mid.'&tag='.$tag.'&sign='.$sign; //发起HTTP请求 $result=$this->postUrlForCalling($url, $curlparams); $data = json_decode($result,true); if($data['result']||!$result){ return ['code'=>0,'msg'=>$data['error']]; }{ return ['code'=>1,'msg'=>'获取成功','data' => $result]; } } private function postUrlForCalling($url, $reqParams){ $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$reqParams); $data = curl_exec($ch); curl_close($ch); return $data; } }