php腾讯云短信验证码

腾讯云短信控制台:https://console.cloud.tencent.com/sms

腾讯云短信 PHP SDK:https://github.com/qcloudsms/qcloudsms_php

案例使用laravel框架

1、准备

1.1、获取SDK AppID和AppKey

​ 云短信应用SDK AppID和AppKey可在短信控制台的应用信息里获取,如您尚未添加应用,请到短信控制台中添加应用。

1.2、申请签名

​ 一个完整的短信由短信签名和短信正文内容两部分组成,短信签名须申请和审核,签名可在短信控制台的相应服务模块内容配置中进行申请。

(腾讯的短信签名申请比较麻烦,需要网站的备案信息)

1.3、申请模板

​ 同样短信或语音正文内容模板须申请和审核,模板可在短信控制台的相应服务模块内容配置中进行申请。

1.4、完成

以上步骤完成,拿到AppID、AppKey、签名ID、模板ID

2、安装

​ qcloudsms_php采用composer进行安装,要使用qcloudsms功能,只需要在composer.json中添加如下依赖:

copy{
	"require": {
		"qcloudsms/qcloudsms_php": "0.1.*"
	}
}

执行composer update,如果是初次使用执行composer install

3、代码

3.1、短信配置信息

建准备的AppId、AppKey、签名、模板ID存到配置文件中,新建配置文件config/sms.php

copy<?php

return [
    'app_id' => '140****927',
    'app_key' => '8a714*************75ab7d',
    'sms_sign' => '21**18',
    'template_id' => '31**96',
];

3.2、封装一个短信发送类

copy<?php
/**
 * 短信相关
 */
namespace App\Utils;
use Qcloud\Sms\SmsSingleSender;

class SmsUtil
{
    /**
     * 腾讯云 发送短信验证码
     * @param $phone:手机号码
     * @param $code:验证码
     */
    public static function SendSmsCode($phone, $code)
    {
        $config = config('sms');//读取config/sms.php配置信息

        try {
            $sender = new SmsSingleSender($config['app_id'], $config['app_key']);
            $params = [$code];
            $result = $sender->sendWithParam("86", $phone, $config['template_id'],
                $params, $config['sms_sign'], "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
            $rsp = json_decode($result);
            if($rsp->result == 0){//0代表成功
                return true;
            }
            \Log::error('发送短信验证码失败:'.$result);
        } catch(\Exception $e) {
        }
        return false;
    }
}

3.3、调用

copySmsUtil::SendSmsCode('12345678910', 'YhP4');
posted @   pine007  阅读(2431)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示