1. 程式人生 > >laravel框架:手機驗證註冊,簡訊提供商

laravel框架:手機驗證註冊,簡訊提供商

一篇介紹基於laravel框架實現簡訊驗證碼註冊的demo文章。文章篇幅適中,適宜閱讀,有不清楚的地方可以私信博主詢問,謝謝大家:)

1. 服務商註冊

簡訊的服務商有很多,這裡介紹雲片,選擇雲片作為我們的簡訊服務商,註冊成功後,會有 10 條簡訊的免費額度,但願夠了。

然後點選註冊,註冊賬戶

註冊成功後,會要求填寫姓名及公司名稱,可以填寫一下相關資訊,學生可以填寫班級或學校,使用一下而已,之後可能會有電話回訪,不影響使用!

基本每個簡訊服務商都需要設定以及後才允許傳送驗證碼,這一點每個簡訊服務商都大同小異

然後我們開始新增,簽名一般都是跟隨在簡訊的開始或者末尾的比如:

【雲片網】雲片網驗證功能碼:XXXXXXX

【雲片網】就是簽名

在新增或者之前,如果是還沒有新增開發者資訊,記得去新增

選個人然後提交證件照片即可,然後添加簽名,等待通過稽核

新增模板也是差不多的操作

2. 安裝相關元件

然後我們需要利用composer安裝一個元件,使用phpstorm的Terminal輸入以下程式碼:

composer require “overtrue/easy-sms”

為了方便使用我們需要封裝一下該元件的ServiceProvider

在config中新增easysms.php檔案

也可以使用Terminal命令列新增:

touch config/easysms.php

然後填入如下內容

<?php
return [
 // HTTP 請求的超時時間(秒)
 'timeout' => 5.0,

 // 預設傳送配置
 'default' => [
 // 閘道器呼叫策略,預設:順序呼叫
 'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,

 // 預設可用的傳送閘道器
 'gateways' => [
 'yunpian',
 ],
 ],
 // 可用的閘道器配置
 'gateways' => [
 'errorlog' => [
 'file' => '/tmp/easy-sms.log',
 ],
 'yunpian' => [
 'api_key' => env('YUNPIAN_API_KEY'),
 ],
 ],
];

然後修改檔案: app/providers/EasySmsServiceProvider.php

<?php

namespace App\Providers;

use Overtrue\EasySms\EasySms;
use Illuminate\Support\ServiceProvider;

class EasySmsServiceProvider extends ServiceProvider
{
 /**
 * Bootstrap the application services.
 *
 * @return void
 */
 public function boot()
 {
 //
 }

 /**
 * Register the application services.
 *
 * @return void
 */
 public function register()
 {
 $this->app->singleton(EasySms::class, function ($app) {
 return new EasySms(config('easysms'));
 });

 $this->app->alias(EasySms::class, 'easysms');
 }
}

最後 開啟config/app.php在providers中新增

App\Providers\EasySmsServiceProvider::class,

然後我們要獲取key值

.env 中配置 YUNPIAN_API_KEY

YUNPIAN_API_KEY=*********

.env.example 中也要加入配置示例

YUNPIAN_API_KEY=

3.測試簡訊

使用artisan除錯一下

開啟tinker

php artisan tinker

輸入以下程式碼

$sms = app('easysms');
try {
 $sms->send(111111, [
 'content' => '【您的簽名】您的驗證碼是1234。如非本人操作,請忽略本簡訊',
 ]);
} catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) {
 $message = $exception->getException('yunpian')->getMessage();
 dd($message);
}

注意將111111替換為您的手機號,

【您的簽名】您的驗證碼是1234。如非本人操作,請忽略本簡訊 改成您的和

然後你可能會報如下錯誤

curl: (60) SSL certificate problem: unable to get local issuer certificate 錯誤

解決方法:這是因為缺少相關證書導致的,下載cacert .pem

然後開啟php.ini檔案

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "****"

將 **** 替換為你的 cacert .pem 的絕對路徑即可

然後再次嘗試如果返回亂碼,就代表你成功了,返回亂碼是因為編碼問題,但是你的手機還是不會受到簡訊,因為亂碼的模板沒有找到,但是你可以在雲片的失敗傳送裡看到這個資訊,這個時候新建路由與方法,修改方法,再次測試即可!

成功了記得打賞點積分
一篇介紹基於laravel框架實現簡訊驗證碼註冊的demo文章。文章篇幅適中,適宜閱讀,有不清楚的地方可以私信博主詢問,謝謝大家:)

1. 服務商註冊

簡訊的服務商有很多,這裡介紹雲片,選擇雲片作為我們的簡訊服務商,註冊成功後,會有 10 條簡訊的免費額度,但願夠了。

然後點選註冊,註冊賬戶

註冊成功後,會要求填寫姓名及公司名稱,可以填寫一下相關資訊,學生可以填寫班級或學校,使用一下而已,之後可能會有電話回訪,不影響使用!

基本每個簡訊服務商都需要設定以及後才允許傳送驗證碼,這一點每個簡訊服務商都大同小異

然後我們開始新增,簽名一般都是跟隨在簡訊的開始或者末尾的比如:

【雲片網】雲片網驗證功能碼:XXXXXXX

【雲片網】就是簽名

在新增或者之前,如果是還沒有新增開發者資訊,記得去新增

選個人然後提交證件照片即可,然後添加簽名,等待通過稽核

新增模板也是差不多的操作

2. 安裝相關元件

然後我們需要利用composer安裝一個元件,使用phpstorm的Terminal輸入以下程式碼:

composer require “overtrue/easy-sms”

為了方便使用我們需要封裝一下該元件的ServiceProvider

在config中新增easysms.php檔案

也可以使用Terminal命令列新增:

touch config/easysms.php

然後填入如下內容

<?php
return [
 // HTTP 請求的超時時間(秒)
 'timeout' => 5.0,

 // 預設傳送配置
 'default' => [
 // 閘道器呼叫策略,預設:順序呼叫
 'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,

 // 預設可用的傳送閘道器
 'gateways' => [
 'yunpian',
 ],
 ],
 // 可用的閘道器配置
 'gateways' => [
 'errorlog' => [
 'file' => '/tmp/easy-sms.log',
 ],
 'yunpian' => [
 'api_key' => env('YUNPIAN_API_KEY'),
 ],
 ],
];

然後修改檔案: app/providers/EasySmsServiceProvider.php

<?php

namespace App\Providers;

use Overtrue\EasySms\EasySms;
use Illuminate\Support\ServiceProvider;

class EasySmsServiceProvider extends ServiceProvider
{
 /**
 * Bootstrap the application services.
 *
 * @return void
 */
 public function boot()
 {
 //
 }

 /**
 * Register the application services.
 *
 * @return void
 */
 public function register()
 {
 $this->app->singleton(EasySms::class, function ($app) {
 return new EasySms(config('easysms'));
 });

 $this->app->alias(EasySms::class, 'easysms');
 }
}

最後 開啟config/app.php在providers中新增

App\Providers\EasySmsServiceProvider::class,

然後我們要獲取key值

.env 中配置 YUNPIAN_API_KEY

YUNPIAN_API_KEY=*********

.env.example 中也要加入配置示例

YUNPIAN_API_KEY=

3.測試簡訊

使用artisan除錯一下

開啟tinker

php artisan tinker

輸入以下程式碼

$sms = app('easysms');
try {
 $sms->send(111111, [
 'content' => '【您的簽名】您的驗證碼是1234。如非本人操作,請忽略本簡訊',
 ]);
} catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) {
 $message = $exception->getException('yunpian')->getMessage();
 dd($message);
}

注意將111111替換為您的手機號,

【您的簽名】您的驗證碼是1234。如非本人操作,請忽略本簡訊 改成您的和

然後你可能會報如下錯誤

curl: (60) SSL certificate problem: unable to get local issuer certificate 錯誤

解決方法:這是因為缺少相關證書導致的,下載cacert .pem

然後開啟php.ini檔案

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "****"

將 **** 替換為你的 cacert .pem 的絕對路徑即可

然後再次嘗試如果返回亂碼,就代表你成功了,返回亂碼是因為編碼問題,但是你的手機還是不會受到簡訊,因為亂碼的模板沒有找到,但是你可以在雲片的失敗傳送裡看到這個資訊,這個時候新建路由與方法,修改方法,再次測試即可!

成功了記得打賞點積分

個人部落格

更多前端技術文章美術設計wordpress外掛、優化教程學習筆記盡在我的個人部落格喵容 - 和你一起描繪生活,歡迎一起交流學習,一起進步:http://panmiaorong.top

站內文章推薦: