服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - PHP对接阿里云虚拟号的实现(号码隐私保护)

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

2021-11-09 15:12Day步步 PHP教程

这篇文章主要介绍了PHP对接阿里云虚拟号的实现(号码隐私保护),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

博主使用的fastadmin 封装框架

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

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

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

效果如下:

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

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

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

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

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

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

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

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

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

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();
  }

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

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

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

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

  //隐私号码绑定
  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对接阿里云虚拟号内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_38029640/article/details/115263403

延伸 · 阅读

精彩推荐
  • PHP教程PHP中Array相关函数简介

    PHP中Array相关函数简介

    在php教程中数组是种强大的数据类型,他可以做的事情很多,可以存储不同的数据类型在一个数组中,下面我们列出了数组常用的操作,排序,键名对数组...

    PHP教程网11732021-02-01
  • PHP教程php+ajax做仿百度搜索下拉自动提示框(有实例)

    php+ajax做仿百度搜索下拉自动提示框(有实例)

    php+mysql+ajax实现百度搜索下拉提示框 主要有3个文件三个文件在同一个目录里 如下图 下面是三个文件的代码 把sql文件导入到mysql数据库里 修改下数据库密码...

    PHP教程网3682020-01-07
  • PHP教程laravel 时间格式转时间戳的例子

    laravel 时间格式转时间戳的例子

    今天小编就为大家分享一篇laravel 时间格式转时间戳的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    meiyouwsm4212021-08-31
  • PHP教程ThinkPHP5+jQuery+MySql实现投票功能

    ThinkPHP5+jQuery+MySql实现投票功能

    这篇文章主要介绍了ThinkPHP5+jQuery+MySql实现投票功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    下页、再停留7972021-09-27
  • PHP教程在Laravel中使用DataTables插件的方法

    在Laravel中使用DataTables插件的方法

    DataTables 是一个 jQuery 的表格插件,记录一下在 Laravel 中使用的常用功能和用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过...

    小谈博客4082019-09-30
  • PHP教程PHP本地进行API接口测试的实例

    PHP本地进行API接口测试的实例

    下面小编就为大家分享一篇PHP本地进行API接口测试的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    江南极客5722019-10-16
  • PHP教程从手册去理解分析PHP session机制

    从手册去理解分析PHP session机制

    session_start()是session机制的开始,它有一定概率开启垃圾回收,因为session是存放在文件中,PHP自身的垃圾回收是无效的,SESSION的回收是要删文件的,这个概率...

    PHP教程网1662019-12-07
  • PHP教程Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)

    Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)

    这篇文章主要介绍了Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels),非常不错,具有参考借鉴价值,需要的朋友可以参考下...

    简同学的代码园9302021-04-20