PHP对接阿里云虚拟号的实现(号码隐私保护)

admin3年前PHP教程51

博主使用的fastadmin 封装框架

实现功能:AXN隐私号绑定、解绑;

场景:为店铺手机号开通虚拟号,用户联系店铺展示虚拟号码;

官方开放文档地址:help.aliyun/document_detail/59655?spm=a2c4g.11174283.6.661.b8365d50CKM5Ma

效果如下:

参考官网开放文档,下载SDK;解压得到 aliyun-dypls-php-sdk 文件夹;

将解压的文件夹内的 api_sdk 文件夹与 api_demo 文件夹内的 PlsDemo.php,拷贝到项目 vendor 目录下,笔者这里是放在了yinsi文件夹

随后打开 PlsDemo.php文件,修改 getAcsClient 方法内对应的 AccessKeyId、AccessKeySecret

还是PlsDemo.php文件,修改绑定时的号码池

还是PlsDemo.php文件,修改解绑时的号码池

最后在用户列表控制器内,添加以下代码:

/** * 编辑 */public function edit($ids = null){$row = $this->model->get($ids);if (!$row) {$this->error(__("No Results were found"));}$adminIds = $this->getDataLimitAdminIds();if (is_array($adminIds)) {if (!in_array($row[$this->dataLimitField], $adminIds)) {$this->error(__("You have no permission"));}}if ($this->request->isPost()) {$params = $this->request->post("row/a");if ($params) {//print_r($params);exit;//开通虚拟号if ($params["privacydata"] == "2"){vendor("yinsi.PlsDemo");$response = PlsDemo::bindAxn($params["mobile"]) ;if ($response->Code == "OK"){$params["privacy_tel"] = $response->SecretBindDTO->SecretNo;$params["subsid"] = $response->SecretBindDTO->SubsId;}else{$this->error($response->Message);}}else{vendor("yinsi.PlsDemo");$response = PlsDemo::unbindSubscription($params["subsid"],$params["privacy_tel"]) ;if ($response->Code == "OK"){$params["privacy_tel"] = "";$params["subsid"] = "";}}; $params = $this->preExcludeFields($params);$result = false;Db::startTrans();try {//是否采用模型验证if ($this->modelValidate) {$name = str_replace("\model\", "\validate\", get_class($this->model));$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . ".edit" : $name) : $this->modelValidate;$row->validateFailException(true)->validate($validate);}$result = $row->allowField(true)->save($params);Db::commit();} catch (ValidateException $e) {Db::rollback();$this->error($e->getMessage());} catch (PDOException $e) {Db::rollback();$this->error($e->getMessage());} catch (Exception $e) {Db::rollback();$this->error($e->getMessage());}if ($result !== false) {$this->success();} else {$this->error(__("No rows were updated"));}}$this->error(__("Parameter %s can not be empty", ""));}$this->view->assign("row", $row);return $this->view->fetch();}

与原始的修改方法区别如下接口描述:

不需要后台管理的笔友,用以下代码:

简单的通过接口绑定、解绑虚拟号。 

//隐私号码绑定public function yinsi(){$type = $this->request->request("type");//1绑定2解绑$mobile = $this->request->request("mobile");//需要绑定的手机号vendor("yinsi.PlsDemo");$response = PlsDemo::bindAxn($mobile) ;print_r($response);exit;//打印接口返回参数}//隐私号码解绑public function Unbundling(){$subsid = $this->request->request("subsid");//绑定接口中返回的subsId;$secretNo = $this->request->request("secretNo");//绑定接口中返回的secretNo;vendor("yinsi.PlsDemo");$response = PlsDemo::unbindSubscription($subsid,$secretNo) ;print_r($response);exit;//打印接口返回参数}

到此这篇关于PHP对接阿里云虚拟号的实现(号码隐私保护)的文章就介绍到这了,更多相关PHP对接阿里云虚拟号内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

gpu服务器适合什么运算美国GPU服务器适合哪些行业购买

现在许多企业早已了解到GPU规模性并行计算产生的优点,刚开始用强劲的多GPU服务器虚拟机各种各样方位的科学研究。那么GPU服务器是干什么的?gpu服务器适合什么运算?什么是GPU服务器GPU计算是使用...

便宜好用的美国大带宽服务器怎么买

便宜好用的美国大带宽服务器怎么买?购买便宜好用的美国大带宽服务器通常需要以下几个步骤:确定购买目的:首先,您需要确定您购买服务器的目的是什么。例如,是用于网站托管、视频流媒体、游戏服务器还是其他用途。...

浅谈如何提高PHP代码质量之单元测试

目录1、单元测试2、应该使用哪个框架?3、如何设置测试?构建测试对象在模拟中匹配运行时参数匹配运行时异常4、在哪里可以找到更多的例子?1、单元测试通过实现单一责任原则(我们的代码应该只关注功能的单个部...

高防服务器多少钱一个月?美国电信100G高防服务器购买价格一个月多少钱?

高防服务器是防御能力最强的,但是价格也是最高的。很多客户在购买之前都想要知道高防服务器的价钱,那么今天小编就给大家讲解下关于高防服务器多少钱一个月的问题:一、什么是高防呢?所谓的高防御指的是攻击者对服...

台湾大带宽服务器可靠吗主要看哪些

台湾大带宽服务器可靠吗主要看哪些?要评估台湾大带宽服务器的可靠性,需要考虑以下几个因素:服务器硬件质量:服务器硬件质量是服务器性能和稳定性的基础,硬件质量好的服务器通常更可靠。带宽提供商:带宽提供商的...

PHP 请求上下文相关总结

我们首先来了解下什么是上下文。在我们写文章,写句子时,都会考虑一个观点或者内容的前后逻辑,转承启合,而在这个观点前后的内容就可以看成是它的上下文内容。它包含了语境的意味在里面,其实代码世界中的上下文也...