composer一个集成腾讯云、短信宝短信发送的工具类:
composer require mrwanghongda/sms-sdk
控制器类文件引入该类文件:
use Mrwanghongda\SmsSdk\Sms\SmsFactory;
控制器类文件常量:
/** * 短信宝 */ const SMS_BAO = 'bao'; /** * 腾讯云 */ const SMS_TENCENT = 'tencent';
控制器类文件方法:
/** * 发送验证码 * @param Request $request * @return \think\response\Json */ function send2(Request $request){ $code=rand(0000,9999); $tel=$request->post('tel'); //工厂模式 $smsObj = (new SmsFactory(SmsFactory::SMS_BAO))->getSmsService(); $config = [ /* 填写平台对应的CAM密匙secretId,短信宝填写平台账号*/ 'secretId' => '', /* 填写平台对应的CAM密匙secretKey,短信宝填写平台密码*/ 'secretKey' => '', /* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 ,短信宝默认为空*/ 'smsSdkAppId' => '', /* 验证码,示例如5039 */ 'code' => $code, /* 填写腾讯、阿里平台对应的签名内容,短信宝则默认为空 */ 'signName' => '', /* 发送的手机号,示例如17899873465 */ 'tel' => $tel, /* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */ 'templateId' => "", /* 模板发送的短信内容,短信宝则需要填写 如:"【短信宝】您的验证码是"5390",3分钟有效。", 腾讯、阿里默认为空 */ 'content' => '【短信宝】您的验证码是'.$code.',3分钟有效。',// ]; $result = $smsObj->send($config); return json([ 'code'=>200, 'msg'=>'成功', 'data'=>$config['content'] ]); }