Laravel 集成 阿里大于 短信接口

2017-03-23 14:12:17   Laravel

  阿里大于   短信接口  

一、配置

1.从终端或命令行进入您的项目目录,运行

  1. composer require iscms/alisms-for-laravel

2.在config/app.php的providers数组中配置

  1. iscms\Alisms\AlidayuServiceProvider::class,

3.在项目根目录执行

  1. php artisan vendor:publish

4.您的config目录应该增加了alisms.php配置文件

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

5.然后您需要在您项目的.ENV 配置文件中写入 SMS 配置 例如

  1. ALISMS_KEY=*******
  2. ALISMS_SECRETKEY=**************

此处ALISMS_KEY、ALISMS_SECRETKEY是指您的账户应用密码,请勿透露给他人

二、开始使用
1.首先在命名空间里引入

  1. <?php
  2. namespace App\Http\Controllers\home;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Support\Facades\Redis as Redis;
  5. use iscms\Alisms\SendsmsPusher as Sms;
  6. class RegisterController extends Controller
  7. {
  8. public $sms;
  9. //单例引入
  10. public function __construct(Sms $sms)
  11. {
  12. $this->sms=$sms;
  13. }
  14. public function code(Request $request)
  15. {
  16. $input = $request->all();
  17. // 判断该手机在10分钟内是否已经发过短信
  18. $exists = \Redis::exists('IT:STRING:USER:CODE:'.$input['phone']);
  19. if(!empty($exists)){
  20. return response()->json(['ResultData'=>'失败','info'=>'重复发送']);
  21. }
  22. $num = rand(100000,999999);
  23. $smsParams = [
  24. 'code' => "$num",
  25. 'product' => '案例展示'
  26. ];
  27. $phone = "$input[phone]";
  28. $name = '注册验证';
  29. $content = json_encode($smsParams);
  30. $code = 'SMS_3166316';
  31. //
  32. $data=$this->sms->send("$phone","$name","$content","$code");
  33. if(property_exists($data,'result')){
  34. \Redis::sEtex('IT:STRING:USER:CODE:'.$phone,600,$num);
  35. return response()->json(['ResultData'=>'成功','info'=>'已发送']);
  36. }else{
  37. return response()->json(['ResultData'=>'失败','info'=>'重复发送']);
  38. }
  39. }

返回执行发送的结果
参数说明

在开始使用中 send 方法一共加入了4个参数

  1. $phone,$name,$content,$code

$phone 指接受短信方的短信号码,
$name 指短信签名 可以在阿里大鱼短信签名 http://www.alidayu.com/admin/service/sign 找到

$content 是指短信模板中的变量内容.举个例子

在自己的阿里大鱼模板里面有下面一个短信模板

那么里面存在着2个变量需要替换,一个是${code} ,一个是${product}

那么对应的我们的$content 就应该为

{
code:”生成的验证码”,
product:”示例项目”
}
$code 指在阿里云中的模板ID,上面的例子中使用了一个身份验证模板,那$code 应该填写 SMS_3166316

参考文章:https://www.blog8090.com/laravel-ji-cheng-a-li-da-yu-duan-xin-jie-kou/

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

感谢你的支持,我会继续努力!
扫码打赏,建议金额1-10元