其实没啥业务;就是绑定一下号码,返回给前端隐私号码就行;怎么说呢;对接接口就和设置隐私号码的呼叫转移一样一样滴
/*
*华为云隐私保护通话绑定号码 axb模式
*/
public function bindphoneinfo($aphone, $bphone)
{
$addonConfigList = get_addon_config('mycar');
// 必填,请参考"开发准备"获取如下数据,替换为实际值
$realUrl = 'https://rtcpns.cn-north-1.myhuaweicloud.com/rest/caas/relationnumber/partners/v1.0'; // APP接入地址+接口访问URI
$APP_KEY = $addonConfigList['HUAWEI_APP_KEY']; // APP_Key
$APP_SECRET = $addonConfigList['HUAWEI_APP_SECRET']; // APP_Secret
$relationNum = $addonConfigList['HUAWEI_PHONE']; // X号码(隐私号码)
$callerNum = '+86' . $aphone; // A号码
$calleeNum = '+86' . $bphone; // B号码
/*
* 选填,各参数要求请参考"AXB模式绑定接口"
*/
// $areaCode = '0755'; // 需要绑定的X号码对应的城市码
// $callDirection = 0; // 允许呼叫的方向
$duration = $addonConfigList['HUAWEI_DURATION']; // 绑定关系保持时间,单位为秒。到期后会被系统自动解除绑定关系
// $recordFlag = 'false'; // 是否需要针对该绑定关系产生的所有通话录音
// $recordHintTone = 'recordHintTone.wav'; // 设置录音提示音
$maxDuration = $addonConfigList['HUAWEI_MAXDURATION']; // 设置允许单次通话进行的最长时间,单位为分钟。通话时间从接通被叫的时刻开始计算
// $lastMinVoice = 'lastMinVoice.wav'; // 设置通话剩余最后一分钟时的提示音
// $privateSms = 'true'; // 设置该绑定关系是否支持短信功能
// $callerHintTone = 'callerHintTone.wav'; // 设置A拨打X号码时的通话前等待音
// $calleeHintTone = 'calleeHintTone.wav'; // 设置B拨打X号码时的通话前等待音
// $preVoice = [
// 'callerHintTone' => $callerHintTone,
// 'calleeHintTone' => $calleeHintTone
// ];
// 请求Headers
$headers = [
'Accept: application/json',
'Content-Type: application/json;charset=UTF-8',
'Authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey"',
'X-WSSE: ' . $this->buildWsseHeader($APP_KEY, $APP_SECRET)
];
// 请求Body,可按需删除选填参数
$data = json_encode([
'relationNum' => $relationNum,
// 'areaCode' => $areaCode,
'callerNum' => $callerNum,
'calleeNum' => $calleeNum,
// 'callDirection' => $callDirection,
'duration' => $duration,
// 'recordFlag' => $recordFlag,
// 'recordHintTone' => $recordHintTone,
'maxDuration' => $maxDuration,
// 'lastMinVoice' => $lastMinVoice,
// 'privateSms' => $privateSms,
// 'preVoice' => $preVoice
]);
//{"resultcode":"0","resultdesc":"Success","subscriptionId":"716ae905-f59e-466a-a97a-c206bbcd1a87","relationNum":"+8617161118014","callDirection":0,"duration":60,"maxDuration":0}
$context_options = [
'http' => [
'method' => 'POST', // 请求方法为POST
'header' => $headers,
'content' => $data,
'ignore_errors' => true // 获取错误码,方便调测
],
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false
] // 为防止因HTTPS证书认证失败造成API调用失败,需要先忽略证书信任问题
];
try {
$response = file_get_contents($realUrl, false, stream_context_create($context_options)); // 发送请求
$ndata = json_decode($response, true);
if ($ndata['resultcode'] == 0) {
$datas['info'] = '绑定成功';
$datas['status'] = 1000;
$datas['phonenumber'] = $ndata['relationNum'];
} else {
if ($ndata['resultcode'] == 1012010) {
//绑定关系存在,直接返回绑定的号码
$datas['info'] = '绑定成功';
$datas['status'] = 1000;
$datas['phonenumber'] = $relationNum;
} else {
$datas['info'] = '绑定失败';
$datas['status'] = 1005;
}
}
} catch (Exception $e) {
$datas['info'] = '绑定失败';
$datas['status'] = 1005;
}
return $datas;
}