Web网站实现简单的短信注册功能(php+mysql+ajax+阿里云短信服务)

1.效果图

 

 

2.前期准备:

① 大家可以先看一看阿里云官方的入门教程   传送门:

https://help.aliyun.com/document_detail/55288.html?spm=a2c4g.11186623.6.557.568a66faTr3BOC

②这里就假装大家已经完成了:

  a.开通短信服务

  

 

b.创建AccessKey

 

  c.申请短信签名(审核30分钟以内通过)

 

  

 

  d.申请短信模板(审核30分钟以内通过)

  

 

3.生成专属Demo:

 进入OpenAPI Explorer

 

 

 按要求输入手机号,短信签名,短信模板ID等,生成对应SDK的Demo代码

 

 

示例:

<?php

use AlibabaCloud\Client\AlibabaCloud;

use AlibabaCloud\Client\Exception\ClientException;

use AlibabaCloud\Client\Exception\ServerException;



// Download:https://github.com/aliyun/openapi-sdk-php

// Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md



AlibabaCloud::accessKeyClient('<accessKeyId>', '<accessSecret>')

                        ->regionId('cn-hangzhou')

                        ->asDefaultClient();



try {

    $result = AlibabaCloud::rpc()

                          ->product('Dysmsapi')

                          // ->scheme('https') // https | http

                          ->version('2017-05-25')

                          ->action('SendSms')

                          ->method('POST')

                          ->host('dysmsapi.aliyuncs.com')

                          ->options([

                                        'query' => [

                                          'RegionId' => "cn-hangzhou",

                                          'PhoneNumbers' => "*******",

                                          'SignName' => "*****",

                                          'TemplateCode' => "*****",

                                        ],

                                    ])

                          ->request();

    print_r($result->toArray());

} catch (ClientException $e) {

    echo $e->getErrorMessage() . PHP_EOL;

} catch (ServerException $e) {

    echo $e->getErrorMessage() . PHP_EOL;

}

 

如果出现错误,请查看SendSms API错误码列表

 

4.环境搭建

①下载并安装Composer。

Linux:

curl -sS https://getcomposer.org/installer | php

Windows:

官网下载并安装Composer

②进入项目文件夹

如果已在系统上全局安装 Composer,请直接在项目目录中运行以下内容来安装 Alibaba Cloud SDK for PHP 作为依赖项并生成类映射:

composer require alibabacloud/sdk --optimize-autoloader

 

③类映射生成

必须开启类映射生成功能才能使用 Alibaba Cloud SDK for PHP

有3种方法:

在 composer.json 文件中 config 部分增加 "optimize-autoloader": true ,可一劳永逸。

执行 composer install 或 composer update 时增加 -o 或 --optimize-autoloader 选项。

执行 composer dump-autoload 时增加 -o 或 --optimize 选项。

 

 

④执行Composer命令安装Alibaba Cloud SDK for PHP的最新版本

php -d memory_limit=-1 composer.phar require alibabacloud/sdk

 

在项目的文件夹下出现此文件:

 

⑤在代码中引入Composer自动加载工具

<?php

require __DIR__ . '/vendor/autoload.php';

也可以使用:

include_once("../vendor/autoload.php");

 

5.完整代码介绍:

<?php



ini_set("error_reporting","E_ALL & ~E_NOTICE");

header("Content-Type: text/html;charset=utf-8");



include_once("../vendor/autoload.php");



use AlibabaCloud\Client\AlibabaCloud;

use AlibabaCloud\Client\Exception\ClientException;

use AlibabaCloud\Client\Exception\ServerException;



//开启session

session_start();

//创建session

$_SESSION['code']=$verificationCode;       //传到js文件用于ajax实时的正确性判断

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

$tel = $_GET['yzmtel'];                    //接收验证码的手机号



AlibabaCloud::accessKeyClient('LTAIipvxpPXHLlvd', 'ufHdjm7HnOS0t5gTK4E0USf5v75Z7a')

                        ->regionId('cn-hangzhou')

                        ->asDefaultClient();



try{

    $result = AlibabaCloud::rpc()

                          ->product('Dysmsapi')

                          ->version('2017-05-25')

                          ->action('SendSms')

                          ->method('POST')

                          ->host('dysmsapi.aliyuncs.com')

                          ->options([

                                        'query' => [

                                        'RegionId' => "cn-hangzhou",

                                        'PhoneNumbers' => $tel 

                                         //你模板中的参数手机号,

                                        'SignName' => "***",

                                         //你的签名名称

                                        'TemplateCode' => "SMS_**",

                                         //你的模板CODE

                                        'TemplateParam'=>'{"code":"'.$verificationCode.'"}',   

                                         //模板参数验证码

                                        ],

                                    ])

                          ->request();

    echo "true";

} catch (ClientException $e) {

    echo $e->getErrorMessage() . PHP_EOL;

} catch (ServerException $e) {

    echo $e->getErrorMessage() . PHP_EOL;

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小wal

您的肯定是我创作的动力,谢谢。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值