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


Posted in PHP onApril 06, 2021

博主使用的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对接阿里云虚拟号内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
Excel数据导入Mysql数据库的实现代码
Jun 05 PHP
php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
Jan 07 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
PHP微信刮刮卡 附微信接口
Jul 22 PHP
创建无限极分类树型结构的简单方法
Jun 20 PHP
laravel 中如何使用ajax和vue总结
Aug 16 PHP
php格式文件打开的四种方法
Feb 24 PHP
php微信开发之图片回复功能
Jun 14 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 #PHP
PHP解决高并发问题
php引用传递
Apr 01 #PHP
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Apr 01 #PHP
PHP判断是否是json字符串
Apr 01 #PHP
php TP5框架生成二维码链接
Apr 01 #PHP
You might like
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
Python 初始化多维数组代码
2008/09/06 Python
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
python学习教程之使用py2exe打包
2017/09/24 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
农贸市场管理制度
2014/01/31 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
大型营销活动计划书
2014/04/28 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
开工典礼策划方案
2014/05/23 职场文书
计算机求职信
2014/07/02 职场文书
销售人员求职信
2014/07/22 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
校园新闻稿范文
2015/07/18 职场文书
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python