一篇介绍基于laravel框架实现短信验证码注册的demo文章。文章篇幅适中,适宜阅读,有不清楚的地方可以私信博主询问,谢谢大家:)
1. 服务商注册
短信的服务商有很多,这里介绍云片,选择云片作为我们的短信服务商,注册成功后,会有 10 条短信的免费额度,但愿够了。
然后点击注册,注册账户
注册成功后,会要求填写姓名及公司名称,可以填写一下相关信息,学生可以填写班级或学校,使用一下而已,之后可能会有电话回访,不影响使用!
基本每个短信服务商都需要设置以及后才允许发送验证码,这一点每个短信服务商都大同小异
然后我们开始添加,签名一般都是跟随在短信的开始或者末尾的比如:
【云片网】云片网验证功能码:XXXXXXX
【云片网】就是签名
在添加或者之前,如果是还没有添加开发者信息,记得去添加
选个人然后提交证件照片即可,然后添加签名,等待通过审核
添加模板也是差不多的操作
2. 安装相关组件
然后我们需要利用composer安装一个组件,使用phpstorm的Terminal输入以下代码:
composer require "overtrue/easy-sms"
为了方便使用我们需要封装一下该组件的ServiceProvider
在config中添加easysms.php文件
也可以使用Terminal命令行添加:
touch config/easysms.php
然后填入如下内容
app/providers/EasySmsServiceProvider.php
在 .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 (OvertrueEasySmsExceptionsNoGatewayAvailableException $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 的绝对路径即可
然后再次尝试如果返回乱码,就代表你成功了,返回乱码是因为编码问题,但是你的手机还是不会受到短信,因为乱码的模板没有找到,但是你可以在云片的失败发送里看到这个信息,这个时候新建路由与方法,修改方法,再次测试即可!
成功了记得打赏点积分
老铁,受用了[aru_49]