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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

短信服务之阿里云平台

發(fā)布時(shí)間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 短信服务之阿里云平台 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

短信服務(wù)之阿里云短信平臺(tái)

  • 開通阿里云短信服務(wù)
  • 集成到TP5框架
    • 安裝
    • 使用
  • 如果解決了你的疑問,麻煩點(diǎn)個(gè)贊吧,當(dāng)然也不介意您關(guān)注收藏下的呢

開通阿里云短信服務(wù)

登錄阿里云進(jìn)入控制臺(tái) 產(chǎn)品與服務(wù)–>云通訊–>短信服務(wù)–>國內(nèi)消息

1.創(chuàng)建 簽名與短信模板

2.創(chuàng)建 AccessKey

3.本人這里使用子賬號(hào) 創(chuàng)建專門把短信服務(wù)授權(quán)給該賬號(hào)

集成到TP5框架

安裝

1.官方PHP SKD Github : https://github.com/aliyun/openapi-sdk-php-client
2.使用composer安裝

composer require alibabacloud/client

使用composer的安裝步驟需要在composer.json里面去配置一下,本來不想說的,又怕有些不懂,特此做一下說明:
如下圖在composer.json文件中的require里加入:“alibabacloud/client”: “^1.5”。

然后再執(zhí)行composer命令,如下圖,其中也會(huì)生成一些依賴包

使用

可以在common文件夾增加一個(gè)Sms類

貼上代碼

<?php namespace app\common;use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException;class Sms {/*** 發(fā)送登錄/注冊(cè)短信* @param string phone 手機(jī)號(hào)碼* @param int number 驗(yàn)證碼* @return array*/public static function sendLoginCode(string $phone, int $number) : array{try{AlibabaCloud::accessKeyClient(env('ACCESS_KEY_ID'), env('ACCESS_KEY_SECRET'))->regionId('cn-hangzhou')->asDefaultClient();$options = ['query' => ['RegionId' => "cn-hangzhou",'PhoneNumbers' => $phone,'SignName' => env('SIGN'),'TemplateCode' => env('ZC_MB_ID'),'TemplateParam' => json_encode(["code" => $number,"product" => "dsd"])]];$result = AlibabaCloud::rpc()->product('Dysmsapi')// ->scheme('https') // https | http->version('2017-05-25')->action('SendSms')->method('POST')->host('dysmsapi.aliyuncs.com')->options($options)->request();if($result->Code == 'OK') {$code = 0;$msg = '發(fā)送成功';//把生成的隨機(jī)數(shù)存進(jìn)redis緩存$key = 'zc_code_' . $phone;app('mycache')->set($key, $number, 300);}else{$code = 2;$msg = $result->Message;}return [$code, $msg];}catch(Exception $e){throw $e;}} }

順便把驗(yàn)證碼發(fā)送和驗(yàn)證一塊貼出來吧,上面那一塊是真正的調(diào)用短信發(fā)送服務(wù),下面是發(fā)送服務(wù)前和發(fā)送服務(wù)后的操作

<?php namespace app\index\controller;use think\Validate; use app\common\Sms;class SmsMsg {/*** 發(fā)送登錄/注冊(cè)短信驗(yàn)證碼*/public function sendLoginCode(){try{$rule = ['phone' => 'require'];$errorMsg = ['phone.require' => '手機(jī)號(hào)碼不能為空'];$validate = Validate::make($rule, $errorMsg);$check = $validate->check(request()->post());if(!$check){$msg = $validate->getError();return json(['code' => 4000, 'msg' => $msg]);}$phone = request()->post('phone');//獲取手機(jī)號(hào)碼$number = mt_rand(100000, 999999);//生成6位數(shù)字碼//發(fā)送list($code, $msg) = Sms::sendLoginCode($phone, $number);if($code){return json(['code' => $code, 'msg' => $msg]);}return json(['code' => $code, 'msg' => '發(fā)送成功']);}catch(ClientException $e){throw new Excetpion($e->getErrorMessage());}catch(ServerException $e){throw new Excetpion($e->getErrorMessage());}catch(Exception $e){throw $e;}}/*** 檢測(cè)驗(yàn)證碼有效性*/public function checkLoginCode(){try{$rule = ['phone' => 'require','code' => 'require|number'];$errorMsg = ['phone.require' => '手機(jī)號(hào)碼不能為空','code.require' => '手機(jī)號(hào)碼不能為空','code.number' => '手機(jī)號(hào)碼必須為數(shù)字'];$validate = Validate::make($rule, $errorMsg);$check = $validate->check(request()->post());if(!$check){$msg = $validate->getError();return json(['code' => 40000, 'msg' => $msg]);}$phone = request()->post('phone');//手機(jī)號(hào)碼$code = request()->post('code');//驗(yàn)證碼$key = 'zc_code_' . $phone;$validCode = app('mycache')->get($key);//0為不通過, 1為通過$data = ['is_valid' => 0];if($code == $validCode){$data['is_valid'] = 1;}return json(['code' => 0, 'msg' => '驗(yàn)證成功', 'data' => $data]);}catch(Exception $e){throw $e;}} }

如果解決了你的疑問,麻煩點(diǎn)個(gè)贊吧,當(dāng)然也不介意您關(guān)注收藏下的呢

總結(jié)

以上是生活随笔為你收集整理的短信服务之阿里云平台的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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