Laravel5中使用阿里大于(鱼)发送短信验证码

Laravel5中使用阿里大于(鱼)发送短信验证码

在做用户注册和个人中心的安全管理时,我实现借助第三方短信平台(阿里大于(鱼))在Laravel框架中进行手机验证的设置;阿里大于,是阿里通信旗下优质便捷的云通信服务平台,整合了三大运营商的通信能力,为开发者提供简洁易用的短信/语音API,三网合一通道,按需付费。

安装laravel阿里大于(鱼)服务

1
composer 
require 
iscms/alisms-
for
-laravel

注册服务(config/app.php)

在文件中找到Providers数组,写入

1
iscms/Alisms/AlidayuServiceProvider::
class

生成阿里大于(鱼)配置文件(config文件夹)

1
php artisan vendor:publish

修改阿里大于(鱼)配置文件(alisms.php)文件为:

1
2
3
4
5
<?php
  
return 
      
'KEY' 
=>env(
'ALISMS_KEY'
,null),
      
'SECRETKEY'
=>env(
'ALISMS_SECRETKEY'
,null)
  
];

laravel根目录下找到.env文件,把阿里大鱼的App key和配置成全局变量(http://www.alidayu.com/)

1
2
ALISMS_KEY=234*****3
ALISMS_SECRETKEY=****************

在您需要调用短信服务的控制器中,引用SMS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
use 
iscms\Alisms\SendsmsPusher 
as 
Sms;
 
 
public 
function 
__construct(Sms 
$sms
)
    
{
       
$this
->sms=
$sms
;
    
}
 
public 
function 
Alidayu(Request 
$request
){
    
$phone 

$request 
->input(
'phone'
,
'1508*****55'
); 
// 用户手机号,接收验证码
    
$name 

'小张个人博客'
;  
// 短信签名,可以在阿里大鱼的管理中心看到
    
$num 
= rand(100000, 999999); 
// 生成随机验证码
    
$smsParams 
= [
        
'number' 
=> 
"$num"
    
];
    
$content 
= json_encode(
$smsParams
); 
// 转换成json格式的
    
$code 

"SMS_63****73"
;   
// 阿里大于(鱼)短信模板ID
    
$request 
->session()->put(
'alidayu'
,
$num
);  
// 存入session 后面做数据验证
 
    
$result
=
$this
->sms->send(
$phone
,
$name
,
$content
,
$code
);
    
echo 
"验证码:"
.session(
'alidayu'
).
'<br/>'
;
    
if
(property_exists(
$request
,
'result'
)){
       
// 使用PHP函数json_encode方法将给定数组转化为JSON:
        
return 
json_encode([
'ResultData' 
=> 
'成功'

'info' 
=> 
'已发送'
]);
    
}
else
{
        
return 
json_encode([
'ResultData' 
=> 
'失败'

'info' 
=> 
'重复发送'
]);
    
}

参数说明:

$phone 手机号,用户输入的手机号
$name  短信签名,阿里大鱼申请的短信签名的名字
$content 替换短信模板中的变量,JSON字符串格式,所有值都是字符串,不能有整形
$code   阿里大鱼申请的短信模ID:SMS_39***4

阿里大于(鱼)短信模板(http://www.alidayu.com/)

1
2
3
 
模板名称: 身份验证
 
模板ID: SMS_39***4
 
*模板内容:验证码${code},您正在进行个人身份验证,打死不要告诉别人哦!

那么里面存在着变量${code}需要替换成验证码,那么对应的$content 就应该为{code:”生成的验证码,如:123456″}

到这里Laravel5使用阿里大于(鱼)发送短信验证码应该没有问题了,开始发送短信吧~ ^_^
alisms-for-laravel:https://packagist.org/packages/iscms/alisms-for-laravel

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113683.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QXDM打印高通sensor 日志问题总结

    QXDM打印高通sensor 日志问题总结在使用QXDM打印高通sensor日志的时候,经常会发现有些赋予已经权限很高的log居然打印不出来,这就个代码的追踪带来了一系列困难,鉴于此,我研究了一下高通中log打印问题,给大家今后的使用带来一些经验。在高通的关于日志的头文件定义中,许多日志是默认不打开的,研究代码:#if(BUILD_DRAGON_BOARD)&&(DEBUG_DATA)#defineLSM6DSM_DATA_M

    2022年9月29日
    2
  • LoadRunner简明教程[通俗易懂]

    LoadRunner简明教程[通俗易懂]LoadRunner是什么LoadRunner是一个性能测试工具,它最初是Mercury公司的产品,后背HP收购。LoadRunner常用来做什么l&nbsp;验证某系统在某环境下是否满足性能需求。l&nbsp;通过测试,规划如何达到要求的性能指标。l&nbsp;调整系统环境,进行性能测试,最终使性能达到最优。为什么要使…

    2022年5月24日
    34
  • 老庄结构设计官网_互联网颗粒度的名词解释

    老庄结构设计官网_互联网颗粒度的名词解释    本文是对上篇MGN论文阅读做一个详细的补充,主要补充其结构设计及技术实现细节。文章内容整合来自云从科技资深算法研究员袁余锋老师,通过以下四个方面来讲解本次课题:1、ReID的定义及技术难点;2、常用数据集与评价指标简介;3、多粒度网络(MGN)的结构设计与技术实现;4、ReID在行人跟踪中的应用分析与技术展望ReID是行人智能认知的其中一个研究方向,行人智能认知是人脸识别之后比较重要…

    2022年10月6日
    4
  • HBase的shell命令行界面按退格键(Backspace)无法删除问题

    HBase的shell命令行界面按退格键(Backspace)无法删除问题HBase的shell命令行界面按退格键(Backspace)无法删除问题

    2022年4月23日
    47
  • Ubuntu中,VLC中文字幕乱码「建议收藏」

    Ubuntu中,VLC中文字幕乱码「建议收藏」简介VLC播放器是一个非常好用的开源、跨平台的视频播放器。最近下载了不少高清的电影,但是没有内嵌字幕,在射手网上下载的字幕老是乱码,着实麻烦了不少事。解决1、打开工具-首选项2、在视频-字幕/OSD-文本渲染器里,选择一个支持中文的字体。3、在输入/编解码器-字幕编解码器-字幕里,将自动检测UTF8和格式化字幕两项去掉,由于在网上下载的字幕普遍都GBK编码,所以

    2022年7月11日
    42
  • 数据挖掘十大经典算法个人总结

    数据挖掘十大经典算法个人总结数据挖掘十大经典算法个人总结这两年对数据挖掘相关知识研究运用的已经很多了,最近看了关于数据挖掘十大经典算法的文章。想对其进行一个总结,强化下自己对这些算法的理解。1.C4.5C4.5是基于ID3算法改进的决策树算法。相对于ID3,其伪代码:它具有的特点:1)用信息增益率来选择属性信息增益会偏向选择取值多的属性,而信息增益率除以H(v)来削弱

    2022年5月5日
    84

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号