PHP阿里云号码隐私服务

这里介绍一下使用阿里云服务号码隐私服务 使用场景例如外卖送餐、挪车等场景,对号码进行隐私保护

首先装一下阿里云的composer

composer require alibabacloud/client

 下面直接上代码  首先可以封装一个类

<?php

namespace app\api\controller;

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Client\Request\Request;
use AlibabaCloud\Dyplsapi\Dyplsapi;
use app\common\controller\Wap;


// Download:https://github.com/aliyun/openapi-sdk-php
// Usage:https://github.com/aliyun/openapi-sdk-php

// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 本示例以把AccessKey ID和AccessKey Secret保存在环境变量为例说明,来实现API访问的身份验证。
class Mobile extends Wap
{
    public static function phone($withPhoneNoA,$withPhoneNoB)
    {
        AlibabaCloud::accessKeyClient('xxxxxxxxxxxx', 'xxxxxxxxxxxx')
            ->regionId('cn-shanghai')
            ->asDefaultClient();
        try {
            $request = Dyplsapi::v20170525()->bindAxb();
            $result = $request
                ->withPoolKey("xxxxxxxxxxx") //号码池key
                ->withPhoneNoA($withPhoneNoA)  //号码A
                ->withPhoneNoB($withPhoneNoB)  //号码B
//                ->withPhoneNoX($withPhoneNoX)  //隐私号
                ->withExpiration(date('Y-m-d H:i:s',time()+65)) //过期时间 两分钟后 date('Y-m-d H:i:s',time()+120)
                ->withIsRecordingEnabled(true)
//                ->withExpectCity("北京")
//                ->withOutId("abcdef")
//                ->withOutOrderId("34553330****")
//                ->withCallRestrict("CONTROL_AX_DISABLE")
                ->withCallDisplayType(1)
//                ->withRingConfig("{\"AXBRing_B\":\"100000001\",\"AXBRing_A\":\"100000001\"}")
                ->withASRModelId("7ee372834d2f4cc7ac0d0ab2d0ae1aac")
                ->withCallTimeout(20)
                ->debug(false) // Enable the debug will output detailed information
                ->connectTimeout(1) // Throw an exception when Connection timeout
                ->timeout(1) // Throw an exception when timeout
                ->request();
            return $result->toArray();
        } catch (ClientException $exception) {
            echo $exception->getMessage() . PHP_EOL;
        } catch (ServerException $exception) {
            echo $exception->getMessage() . PHP_EOL;
            echo $exception->getErrorCode() . PHP_EOL;
            echo $exception->getRequestId() . PHP_EOL;
            echo $exception->getErrorMessage() . PHP_EOL;
        }
    }
}

然后就可以根据业务逻辑进行调用了

$data = Mobile::phone($this->user_info['mobile'],$user['mobile']);
        if ($data['Code'] == 'isv.NO_AVAILABLE_NUMBER'){
            return self::error('','当前占线中,请稍后再试');
        }
//        print_r($data);
        return self::success('获取信息成功',$data['SecretBindDTO']['SecretNo']);

进行一个简单的判断  请求成功之后会返回隐私号  传参时 A呼叫隐私号 B接通隐私号 过期呼叫隐私号就会变为空号
我所使用的框架是TP6 

请求参数

名称类型必填描述示例值及参考API

PoolKey

String

号码池Key。

请登录号码隐私保护控制台,在号码池管理中查看号码池Key。

示例值:

FC5526*****

PhoneNoA

String

AXB中的A号码。

A号码可设置为手机号码或固定电话,固定电话需要加区号,区号和号码中间不需要加连字符。

示例值:

139****0000

参考取值来源:

QueryPhoneNoAByTrackNo

BindAxnExtension

PhoneNoB

String

AXB中的B号码,A号码拨打X号码时会转接到B号码。 B号码可设置为手机号码或固定电话,固定电话需要加区号,区号和号码中间不需要加连字符。

说明

如需更新B号码,请调用UpdateSubscription接口更新。

示例值:

139****0000

参考取值来源:

QueryPhoneNoAByTrackNo

PhoneNoX

String

AXB中的X号码。

X号码是您绑定号码前在号码隐私保护控制台或通过BuySecretNo接口购买的电话号码,用于转接电话。

如果未指定X号码,将根据参数ExpectCity从指定号码池中随机指定一个号码作为X号码。

示例值:

139****0000

参考取值来源:

QueryPhoneNoAByTrackNo

Expiration

String

绑定关系的过期时间。

说明

必须晚于当前时间1分钟以上。

示例值:

2021-09-05 12:00:00

ExpectCity

String

指定城市进行X号码的选号。

  • 如果当前号码池中没有该城市的可用号码,或未指定此参数,将从当前号码池中随机分配一个其他城市的号码作为X号码。
  • 如果X号码分配模式配置为严格匹配模式,当符合条件的号码不存在时,系统会提示分配错误。

示例值:

北京

IsRecordingEnabled

Boolean

是否需要针对该绑定关系产生的所有通话进行通话录音。取值:

  • true:录音。
  • false:不录音(默认值)。

示例值:

true

OutId

String

外部业务扩展字段,通话记录回执消息中会回传此参数。

示例值:

abcdef

OutOrderId

String

外部业务ID。

示例值:

34553330****

CallRestrict

String

单通呼叫限制的状态。取值:

  • CONTROL_AX_DISABLE:A号码无法呼叫X号码。
  • CONTROL_BX_DISABLE:B号码无法呼叫X号码。

示例值:

CONTROL_AX_DISABLE

CallDisplayType

Integer

重置绑定关系中的号码显示逻辑。固定取值:1(主被叫显示中间号码X)。

说明

由于运营商监管限制,呼叫时显示真实号码的设置不生效。

示例值:

1

RingConfig

String

设置AXB绑定关系中的企业彩铃放音编码,内容如下:

  • AXB中,A号码打X的铃音设置:AXBRing_A
  • AXB中,B号码打X的铃音设置:AXBRing_B

企业彩铃编码:企业彩铃编码可以在管理控制台中查询,具体请登录号码隐私保护控制台,通过号码池管理>企业彩铃管理进行查看,支持上传、删除等操作。

说明

企业彩铃优先使用绑定级别设置的彩铃,如果未设置或设置未生效,则会使用号码池级别的彩铃音。

示例值:

{ "AXBRing_B": "1000****1", "AXBRing_A": "1000****1" }

ASRStatus

Boolean

ASR状态。取值:

  • false:关闭(默认值)。
  • true:开启。

示例值:

false

ASRModelId

String

ASR模型ID。可以在ASR模型管理页面查看ASR模型ID。

示例值:

1、通用-电话-中文普通话模型7ee372834d2f4cc7ac0d0ab2d0ae1aac 。 2、通用-电话-中文粤语模型 9b4afe3d224e4fa3bf963697113e2f77。 3、通用-电话-地方口音模型 3655a6cb94764145a1f9a38a3c3b3b4b。

CallTimeout

Integer

顺振时长。单位:秒。取值范围为5~20。

示例值:

10

DtmfConfig

String

设置AXB绑定关系中的dtmf按键配置,可配置内容如下:

  • endCallIvrPhoneNo 放音对象 A或B
  • waitingDtmfTime 放完第一段音后的最大等待时长,最大时长30秒
  • maxLoop dtmf按键不匹配,循环播放第一个放音文件的最大次数,最大循环次数5次
  • step1File 第一个放音文件名称
  • step2File 第二个放音文件名称
  • validKey 合法按键值定义,如:1,2 只允许配置两个有效键值按以","分隔
  • waitingEndCall 运营商挂机等待时长,最大等待时长10秒

示例值:

{ "endCallIvrPhoneNo":"A", "waitingDtmfTime":10, "maxLoop":3, "step1File":"62ab72f8-4750-4234-859e-e8d678c0cad3-flow_tts_test_1.wav", "step2File":"62ab72f8-4750-4234-859e-e8d678c0cad3-flow_tts_test_2.wav", "validKey":"1,2", "waitingEndCall":2 }

响应参数

名称类型描述示例

Code

String

请求状态码。

OK

Message

String

状态码的描述。

OK

RequestId

String

请求ID。

9297B722-A016-43FB-B51A-E54050D9369D

SecretBindDTO

Object

号码绑定成功后返回的结构体。

Extension

String

分机号码。

说明

接口BindAxb不涉及分机号码,请忽略该返回参数。

130

SubsId

String

绑定关系ID。

1**************3

SecretNo

String

隐私号码,即X号码。

139****0000

下面附上阿里云官方文档  参数里面有详细说明


BindAxb_号码隐私保护服务_API调试-阿里云OpenAPI开发者门户 (aliyun.com)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值