給你代碼:阿里雲短信驗證碼登錄開發集成

給你代碼:阿里雲短信驗證碼登錄開發集成

應國家相關法律法規要求,用戶註冊需要實名制。因為手機號碼都是使用我們自己的身份證進行註冊的,因此實名認證最簡單的方法就是使用我們的手機號碼來進行註冊。這篇文章中我們使用的是阿里雲短信服務。

開通短信服務

在阿里雲官方網站登錄後,在搜索欄輸入“短信服務”,選擇,第一次使用將提示開通服務,根據自己的網站規模選擇合適的套餐即可,購買過程此處略過。

給你代碼:阿里雲短信驗證碼登錄開發集成

模板設置

在“快速學習”欄,找到“測試短信發送”部分,我們需要預先設置好籤名和模板。簽名添加後需要等待申請,審核時間一般1-2天。

給你代碼:阿里雲短信驗證碼登錄開發集成

系統已經預先為我們創建了常用的短信模板,這樣避免了再次提交審核:

給你代碼:阿里雲短信驗證碼登錄開發集成

SDK使用

這裡並沒有使用composer方式安裝阿里的SDK包,因為依賴包體積比較龐大,這裡只使用了官方提供的PHP輕量版SDK,在這個鏈接能找到下載入口:https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.4.5.289e19d9tNNmu8。

解壓文件後,我們得到以下文件:

<code>demo
|- querySendDetails.php
|- sendBatchSms.php
|- sendSms.php
SignatureHelper.php
Test.php/<code>

打開demo目錄下的sendSms.php文件,源碼如下:

<code>/*
* 此文件用於驗證短信服務API接口,供開發時參考
* 執行驗證前請確保文件為utf-8編碼,並替換相應參數為您自己的信息,並取消相關調用的註釋
* 建議驗證前先執行Test.php驗證PHP環境
*
* 2017/11/30
*/

namespace Aliyun\\DySDKLite\\Sms;

require_once dirname(__DIR__) . "/SignatureHelper.php";

use Aliyun\\DySDKLite\\SignatureHelper;


/**

* 發送短信
*/
function sendSms() {

$params = array ();

// *** 需用戶填寫部分 ***
// fixme 必填:是否啟用https
$security = false;

// fixme 必填: 請參閱 https://ak-console.aliyun.com/ 取得您的AK信息
$accessKeyId = "your access key id";
$accessKeySecret = "your access key secret";

// fixme 必填: 短信接收號碼
$params["PhoneNumbers"] = "17000000000";

// fixme 必填: 短信簽名,應嚴格按"簽名名稱"填寫,請參考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
$params["SignName"] = "鯤圭雲計算";

// fixme 必填: 短信模板Code,應嚴格按"模板CODE"填寫, 請參考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
$params["TemplateCode"] = "SMS_182320029";

// fixme 可選: 設置模板參數, 假如模板中存在變量需要替換則為必填項

$params['TemplateParam'] = Array (
"code" => "12345",
#"product" => "阿里通信"
);

// fixme 可選: 設置發送短信流水號
//$params['OutId'] = "12345";

// fixme 可選: 上行短信擴展碼, 擴展碼字段控制在7位或以下,無特殊需求用戶請忽略此字段
//$params['SmsUpExtendCode'] = "1234567";



// *** 需用戶填寫部分結束, 以下代碼若無必要無需更改 ***
if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {
$params["TemplateParam"] = json_encode($params["TemplateParam"], JSON_UNESCAPED_UNICODE);
}

// 初始化SignatureHelper實例用於設置參數,簽名以及發送請求
$helper = new SignatureHelper();

// 此處可能會拋出異常,注意catch
$content = $helper->request(
$accessKeyId,
$accessKeySecret,
"dysmsapi.aliyuncs.com",
array_merge($params, array(
"RegionId" => "cn-hangzhou",
"Action" => "SendSms",
"Version" => "2017-05-25",
)),
$security
);

return $content;
}

ini_set("display_errors", "on"); // 顯示錯誤提示,僅用於測試時排查問題
error_reporting(E_ALL); // 顯示所有錯誤提示,僅用於測試時排查問題
set_time_limit(0); // 防止腳本超時,僅用於測試使用,生產環境請按實際情況設置
header("Content-Type: text/plain; charset=utf-8"); // 輸出為utf-8的文本格式,僅用於測試

// 驗證發送短信(SendSms)接口
print_r(sendSms());/<code>



給你代碼往期回顧:


分享到:


相關文章: