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;

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章