PHP對接阿里云虛擬號的實現(xiàn)(號碼隱私保護)
博主使用的fastadmin 封裝框架
實現(xiàn)功能:AXN隱私號綁定、解綁;
場景:為店鋪手機號開通虛擬號,用戶聯(lián)系店鋪展示虛擬號碼;
官方開放文檔地址:https://help.aliyun.com/document_detail/59655.html?spm=a2c4g.11174283.6.661.b8365d50CKM5Ma
效果如下:
參考官網(wǎng)開放文檔,下載SDK;解壓得到 aliyun-dypls-php-sdk 文件夾;
將解壓的文件夾內(nèi)的 api_sdk 文件夾與 api_demo 文件夾內(nèi)的 PlsDemo.php,拷貝到項目 vendor 目錄下,筆者這里是放在了yinsi文件夾
隨后打開 PlsDemo.php文件,修改 getAcsClient 方法內(nèi)對應(yīng)的 AccessKeyId、AccessKeySecret
還是PlsDemo.php文件,修改綁定時的號碼池
還是PlsDemo.php文件,修改解綁時的號碼池
最后在用戶列表控制器內(nèi),添加以下代碼:
/** * 編輯 */ 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(); }
與原始的修改方法區(qū)別如下接口描述:
不需要后臺管理的筆友,用以下代碼:
簡單的通過接口綁定、解綁虛擬號。
//隱私號碼綁定 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;//打印接口返回參數(shù) } //隱私號碼解綁 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;//打印接口返回參數(shù) }
到此這篇關(guān)于PHP對接阿里云虛擬號的實現(xiàn)(號碼隱私保護)的文章就介紹到這了,更多相關(guān)PHP對接阿里云虛擬號內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
