其实没啥业务;就是绑定一下号码,返回给前端隐私号码就行;怎么说呢;对接接口就和设置隐私号码的呼叫转移一样一样滴

 /*
    *华为云隐私保护通话绑定号码 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;
    }
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐