阿里云号码隐私服务"/>
PHP阿里云号码隐私服务
这里介绍一下使用阿里云服务号码隐私服务 使用场景例如外卖送餐、挪车等场景,对号码进行隐私保护
首先装一下阿里云的composer
composer require alibabacloud/client
下面直接上代码 首先可以封装一个类
<?phpnamespace 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:
// Usage:// 阿里云账号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号码的选号。
| 示例值: 北京 |
IsRecordingEnabled | Boolean | 否 | 是否需要针对该绑定关系产生的所有通话进行通话录音。取值:
| 示例值: true |
OutId | String | 否 | 外部业务扩展字段,通话记录回执消息中会回传此参数。 | 示例值: abcdef |
OutOrderId | String | 否 | 外部业务ID。 | 示例值: 34553330**** |
CallRestrict | String | 否 | 单通呼叫限制的状态。取值:
| 示例值: CONTROL_AX_DISABLE |
CallDisplayType | Integer | 否 | 重置绑定关系中的号码显示逻辑。固定取值:1(主被叫显示中间号码X)。 说明由于运营商监管限制,呼叫时显示真实号码的设置不生效。 | 示例值: 1 |
RingConfig | String | 否 | 设置AXB绑定关系中的企业彩铃放音编码,内容如下:
企业彩铃编码:企业彩铃编码可以在管理控制台中查询,具体请登录号码隐私保护控制台,通过号码池管理>企业彩铃管理进行查看,支持上传、删除等操作。 说明企业彩铃优先使用绑定级别设置的彩铃,如果未设置或设置未生效,则会使用号码池级别的彩铃音。 | 示例值: { "AXBRing_B": "1000****1", "AXBRing_A": "1000****1" } |
ASRStatus | Boolean | 否 | ASR状态。取值:
| 示例值: 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", "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)
更多推荐
PHP阿里云号码隐私服务
发布评论