laravel框架:手机验证注册,短信提供商

一篇介绍基于laravel框架实现短信验证码注册的demo文章。文章篇幅适中,适宜阅读,有不清楚的地方可以私信博主询问,谢谢大家:)

1. 服务商注册

短信的服务商有很多,这里介绍云片,选择云片作为我们的短信服务商,注册成功后,会有 10 条短信的免费额度,但愿够了。

laravel框架:手机验证注册,短信提供商_第1张图片

然后点击注册,注册账户

laravel框架:手机验证注册,短信提供商_第2张图片

注册成功后,会要求填写姓名及公司名称,可以填写一下相关信息,学生可以填写班级或学校,使用一下而已,之后可能会有电话回访,不影响使用!

laravel框架:手机验证注册,短信提供商_第3张图片

基本每个短信服务商都需要设置以及后才允许发送验证码,这一点每个短信服务商都大同小异

然后我们开始添加,签名一般都是跟随在短信的开始或者末尾的比如:

【云片网】云片网验证功能码:XXXXXXX

【云片网】就是签名

在添加或者之前,如果是还没有添加开发者信息,记得去添加

laravel框架:手机验证注册,短信提供商_第4张图片

选个人然后提交证件照片即可,然后添加签名,等待通过审核

添加模板也是差不多的操作

2. 安装相关组件

然后我们需要利用composer安装一个组件,使用phpstorm的Terminal输入以下代码:

composer require “overtrue/easy-sms”

为了方便使用我们需要封装一下该组件的ServiceProvider

在config中添加easysms.php文件

也可以使用Terminal命令行添加:

touch config/easysms.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



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值

laravel框架:手机验证注册,短信提供商_第5张图片

.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文章。文章篇幅适中,适宜阅读,有不清楚的地方可以私信博主询问,谢谢大家:)

个人博客

更多前端技术文章美术设计wordpress插件、优化教程学习笔记尽在我的个人博客喵容 - 和你一起描绘生活,欢迎一起交流学习,一起进步:http://www.miaoroom.com

站内文章推荐:

「前端进阶」史上最全的前端学习路线

「不要重复造轮子系列」 前端常用插件、工具类库汇总

如何保障前端项目代码质量

记录一次基于vue、typescript、pwa的项目由开发到部署

小程序挖坑之路

原文链接:laravel框架:手机验证注册,短信提供商

你可能感兴趣的:(php,后端)