日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

thinkphp5.1使用云之讯

發(fā)布時間:2023/12/20 php 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 thinkphp5.1使用云之讯 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 下載云之訊SDK
    http://docs.ucpaas.com/doku.php?id=sms_sdk
  • 解壓
  • 只要lib下的Ucpaas.class.php文件,修改名字為Ucpaas.php,放到如下位置:
  • 添加命名空間,其他的不用修改
  • /*** Created by PhpStorm.* User: 17839* Date: 2020/3/21* Time: 21:12*/ namespace sms;class Ucpaas {//API請求地址const BaseUrl = "https://open.ucpaas.com/ol/sms/";//開發(fā)者賬號ID。由32個英文字母和阿拉伯?dāng)?shù)字組成的開發(fā)者賬號唯一標(biāo)識符。private $accountSid;//開發(fā)者賬號TOKENprivate $token;public function __construct($options){if (is_array($options) && !empty($options)) {$this->accountSid = isset($options['accountsid']) ? $options['accountsid'] : '';$this->token = isset($options['token']) ? $options['token'] : '';} else {throw new Exception("非法參數(shù)");}}private function getResult($url, $body = null, $method){$data = $this->connection($url,$body,$method);if (isset($data) && !empty($data)) {$result = $data;} else {$result = '沒有返回?cái)?shù)據(jù)';}return $result;}/*** @param $url 請求鏈接* @param $body post數(shù)據(jù)* @param $method post或get* @return mixed|string*/private function connection($url, $body,$method){if (function_exists("curl_init")) {$header = array('Accept:application/json','Content-Type:application/json;charset=utf-8',);$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, $header);if($method == 'post'){curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$body);}curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$result = curl_exec($ch);curl_close($ch);} else {$opts = array();$opts['http'] = array();$headers = array("method" => strtoupper($method),);$headers[]= 'Accept:application/json';$headers['header'] = array();$headers['header'][]= 'Content-Type:application/json;charset=utf-8';if(!empty($body)) {$headers['header'][]= 'Content-Length:'.strlen($body);$headers['content']= $body;}$opts['http'] = $headers;$result = file_get_contents($url, false, stream_context_create($opts));}return $result;}/**單條發(fā)送短信的function,適用于注冊/找回密碼/認(rèn)證/操作提醒等單個用戶單條短信的發(fā)送場景* @param $appid 應(yīng)用ID* @param $mobile 接收短信的手機(jī)號碼* @param $templateid 短信模板,可在后臺短信產(chǎn)品→選擇接入的應(yīng)用→短信模板-模板ID,查看該模板ID* @param null $param 變量參數(shù),多個參數(shù)使用英文逗號隔開(如:param=“a,b,c”)* @param $uid 用于貴司標(biāo)識短信的參數(shù),按需選填。* @return mixed|string* @throws Exception*/public function SendSms($appid,$templateid,$param=null,$mobile,$uid){$url = self::BaseUrl . 'sendsms';$body_json = array('sid'=>$this->accountSid,'token'=>$this->token,'appid'=>$appid,'templateid'=>$templateid,'param'=>$param,'mobile'=>$mobile,'uid'=>$uid,);$body = json_encode($body_json);$data = $this->getResult($url, $body,'post');return $data;}/**群發(fā)送短信的function,適用于運(yùn)營/告警/批量通知等多用戶的發(fā)送場景* @param $appid 應(yīng)用ID* @param $mobileList 接收短信的手機(jī)號碼,多個號碼將用英文逗號隔開,如“18088888888,15055555555,13100000000”* @param $templateid 短信模板,可在后臺短信產(chǎn)品→選擇接入的應(yīng)用→短信模板-模板ID,查看該模板ID* @param null $param 變量參數(shù),多個參數(shù)使用英文逗號隔開(如:param=“a,b,c”)* @param $uid 用于貴司標(biāo)識短信的參數(shù),按需選填。* @return mixed|string* @throws Exception*/public function SendSms_Batch($appid,$templateid,$param=null,$mobileList,$uid){$url = self::BaseUrl . 'sendsms_batch';$body_json = array('sid'=>$this->accountSid,'token'=>$this->token,'appid'=>$appid,'templateid'=>$templateid,'param'=>$param,'mobile'=>$mobileList,'uid'=>$uid,);$body = json_encode($body_json);$data = $this->getResult($url, $body,'post');return $data;} }
  • 封裝發(fā)短信的類庫,在app/common/lib/sms下新建Sms.php
  • Sms.php代碼如下
  • /*** Created by PhpStorm.* User: 17839* Date: 2020/3/21* Time: 19:33*/namespace app\common\lib\sms;use sms\Ucpaas;class Sms {// ucpaas 的實(shí)例private $ucpaas;public function __construct(){$options['accountsid'] = config('sms.accountSid');$options['token'] = config('sms.token');$this->ucpaas = new Ucpaas($options);}public function smsSend($phone, $code){$appid = config('sms.appId'); //應(yīng)用的ID,可在開發(fā)者控制臺內(nèi)的短信產(chǎn)品下查看$templateid = config('sms.templateId'); //可在后臺短信產(chǎn)品→選擇接入的應(yīng)用→短信模板-模板ID,查看該模板ID$param = $code; //多個參數(shù)使用英文逗號隔開(如:param=“a,b,c”),如為參數(shù)則留空$mobile = $phone;$uid = "";$res = $this->ucpaas->SendSms($appid,$templateid,$param,$mobile,$uid);return $res;} }
  • 在app/index/controller/index.php試用自己封裝的類庫
  • namespace app\index\controller;use app\common\lib\sms\Sms; use think\Controller;class Index extends Controller {public function index(){$sms = new Sms();// 用自己的手機(jī)號實(shí)驗(yàn)$phone = '';$code = self::getCode();$data = $sms->smsSend($phone, $code);halt($data);}/*** 隨機(jī)產(chǎn)生驗(yàn)證碼 4位或6位* @param int $num [幾位數(shù)驗(yàn)證碼]* @return int*/public static function getCode($num = 4){if ($num == 4) {return rand(1000, 9999);} else {return rand(100000, 999999);}} }
  • 訪問 http://<自己的域名>,得到如下結(jié)果
  • 總結(jié)

    以上是生活随笔為你收集整理的thinkphp5.1使用云之讯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。