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