thinkphp6 +阿里云短信验证码

一、登录阿里云开通短信验证码

1、正常添加,等待审核成功,获取自己的账号的access_key 以及access_secret 进到下边界面创建就行,保存好

thinkphp6 +阿里云短信验证码

thinkphp6 +阿里云短信验证码

thinkphp6 +阿里云短信验证码

thinkphp6 +阿里云短信验证码

thinkphp6 +阿里云短信验证码

二、下载阿里云SDK包

composer require alibabacloud/sdk

三、thinkphp6 基本操作

1、三个文件 第一个是config下的sms。修改红框内容为自己的内容。在上面几个步骤里面都有,找下填写 。以下单成功为例子 :外面的place是自己起的名字。里面的内容是在最后一张图添加模板之后能看见的信息。签名就是第三张图的名字access_key 以及access_secret ,换成上边自己的。最下面的template_id是模板里面的thinkphp6 +阿里云短信验证码

2、\app\common 在公共文件夹下创建sms.php ,写入方法

<?php
// +----------------------------------------------------------------------
// | 胜家云 [ SingKa Cloud ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2020 https://www.singka.net All rights reserved.
// +----------------------------------------------------------------------
// | 宁波晟嘉网络科技有限公司
// +----------------------------------------------------------------------
// | Author: ShyComet <shycomet@qq.com>
// +----------------------------------------------------------------------
namespace app\common;

use SingKa\Sms\SkSms;
use think\facade\Config;

class Sms
{
    /**
     * 短信发送示例
     *
     * @mobile  短信发送对象手机号码
     * @action  短信发送场景,会自动传入短信模板
     * @parme   短信内容数组
     */
    public function sendSms($mobile, $action, $parme)
    {
        //$this->SmsDefaultDriver是从数据库中读取的短信默认驱动
        //$SmsDefaultDriver = $this->SmsDefaultDriver ?: 'aliyun';
        $SmsDefaultDriver =  'aliyun';
        //$this->SmsConfig是从数据库中读取的短信配置
        //$config = $this->SmsConfig ?: Config::get('sms.'.$SmsDefaultDriver);
        $config = Config::get('sms.'.$SmsDefaultDriver);
        $sms = new sksms($SmsDefaultDriver, $config);//传入短信驱动和配置信息
        //判断短信发送驱动,非阿里云和七牛云,需将内容数组主键序号化
        //if ($this->SmsDefaultDriver == 'aliyun') {
            $result = $sms->$action($mobile, $parme);
        //} elseif ($this->SmsDefaultDriver == 'qiniu') {
        //    $result = $sms->$action([$mobile], $parme);
        //} elseif ($this->SmsDefaultDriver == 'upyun') {
        //    $result = $sms->$action($mobile, implode('|', $this->restoreArray($parme)));
        //} else {
        //    $result = $sms->$action($mobile, $this->restoreArray($parme));
        //}
        if ($result['code'] == 200) {
            $data['code'] = 200;
            $data['msg'] = '短信发送成功';
        } else {
            $data['code'] = $result['code'];
            $data['msg'] = $result['msg'];
        }
        return $data;
    }

//    /**
//     * 数组主键序号化
//     *
//     * @arr  需要转换的数组
//     */
//    public function restoreArray($arr)
//    {
//        if (!is_array($arr)){
//            return $arr;
//        }
//        $c = 0;
//        $new = [];
//        foreach ($arr as $key => $value) {
//            $new[$c] = $value;
//            $c++;
//        }
//        return $new;
//    }
}

2、最后在你需要的地方调用这个方法就行了


use app\common\Sms;


 $Sms = new Sms();
 $Sms->sendSms($tel,'place', ['code' => mt_rand(1000, 9999)]);
上一篇:Thinkphp6笔记九:语言包文件定义


下一篇:observe源码