一、登录阿里云开通短信验证码
1、正常添加,等待审核成功,获取自己的账号的access_key 以及access_secret 进到下边界面创建就行,保存好
二、下载阿里云SDK包
composer require alibabacloud/sdk
三、thinkphp6 基本操作
1、三个文件 第一个是config下的sms。修改红框内容为自己的内容。在上面几个步骤里面都有,找下填写 。以下单成功为例子 :外面的place是自己起的名字。里面的内容是在最后一张图添加模板之后能看见的信息。签名就是第三张图的名字access_key 以及access_secret ,换成上边自己的。最下面的template_id是模板里面的
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)]);