aliyun短信验证码接入(php版)

安装SDK: 

使用Composer安装阿里云PHP SDK:

composer require alibabacloud/client

发送验证码:

当用户请求发送验证码时,后端应执行以下操作:

<?php
require 'vendor/autoload.php';

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;

AlibabaCloud::accessKeyClient('<YOUR-ACCESS-KEY>', '<YOUR-ACCESS-SECRET>')
    ->regionId('cn-hangzhou') 
    ->asDefaultClient();

$code = rand(100000, 999999); //生成6位随机验证码

// 将验证码存储到会话或数据库,并设置有效期
$_SESSION['sms_code'] = $code;
$_SESSION['sms_code_expiry'] = time() + 300; //设置验证码5分钟后过期

try {
    $result = AlibabaCloud::rpc()
        ->product('Dysmsapi')
        ->version('2017-05-25')
        ->action('SendSms')
        ->method('POST')
        ->host('dysmsapi.aliyuncs.com')
        ->options([
            'query' => [
                'RegionId' => "cn-hangzhou",
                'PhoneNumbers' => "<USER-PHONE-NUMBER>",
                'SignName' => "<YOUR-SIGN-NAME>",
                'TemplateCode' => "<YOUR-TEMPLATE-CODE>",
                'TemplateParam' => json_encode(['code' => $code]),
            ],
        ])
        ->request();
    print_r($result->toArray());
} catch (ClientException $e) {
    echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
    echo $e->getErrorMessage() . PHP_EOL;
}
?>

验证验证码:

当用户提交验证码时,比较用户输入的验证码与会话或数据库中存储的验证码,然后判断验证码是否过期。

<?php
$userInputCode = $_POST['code']; // 从表单或AJAX请求获取用户输入的验证码

if (isset($_SESSION['sms_code']) && $_SESSION['sms_code'] == $userInputCode && time() <= $_SESSION['sms_code_expiry']) {
    echo "验证码正确!";
    // 执行其他注册逻辑
} else {
    echo "验证码错误或已过期!";
}
?>


本文标题:《aliyun短信验证码接入(php版)》作者:admin
原文链接:https://ganda.run/post/21.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年6月    »
1
2345678
9101112131415
16171819202122
23242526272829
30

控制面板

您好,欢迎到访网站!
  查看权限

网站分类

搜索

最新留言

    文章归档

    网站收藏

      友情链接

      图标汇集

      • Z-BlogPHP
      • 订阅本站的 RSS 2.0 新闻聚合