萬(wàn)商超信
阿里云短信驗(yàn)證碼接口(短信驗(yàn)證碼接口的實(shí)現(xiàn))
2021-12-13 13:44
應(yīng)國(guó)家相關(guān)法律法規(guī)要求,用戶注冊(cè)需要實(shí)名制。[阿里云短信驗(yàn)證碼接口(短信驗(yàn)證碼接口的實(shí)現(xiàn))]。因?yàn)槭謾C(jī)號(hào)碼都是使用我們自己的身份證進(jìn)行注冊(cè)的,因此實(shí)名認(rèn)證最簡(jiǎn)單的方法就是使用我們的手機(jī)號(hào)碼來(lái)進(jìn)行注冊(cè)。這篇文章中我們使用的是阿里云短信服務(wù)。
開(kāi)通短信服務(wù)
在阿里云官方網(wǎng)站登錄后,在搜索欄輸入“短信服務(wù)”,選擇,第一次使用將提示開(kāi)通服務(wù),根據(jù)自己的網(wǎng)站規(guī)模選擇合適的套餐即可,購(gòu)買(mǎi)過(guò)程此處略過(guò)。
模板設(shè)置
在“快速學(xué)習(xí)”欄,找到“測(cè)試短信發(fā)送”部分,我們需要預(yù)先設(shè)置好簽名和模板。簽名添加后需要等待申請(qǐng),審核時(shí)間一般1-2天。
系統(tǒng)已經(jīng)預(yù)先為我們創(chuàng)建了常用的短信模板,這樣避免了再次提交審核:
SDK使用
這里并沒(méi)有使用composer方式安裝阿里的SDK包,因?yàn)橐蕾嚢w積比較龐大,這里只使用了官方提供的PHP輕量版SDK,在這個(gè)鏈接能找到下載入口:
https://help.aliyun.com/document_detail/55359.html?spm=
a2c4g.11186623.4.5.289e19d9tNNmu8。
解壓文件后,我們得到以下文件:
demo
|- querySendDetails.php
|- sendBatchSms.php
|- sendSms.php
SignatureHelper.php
Test.php
打開(kāi)demo目錄下的sendSms.php文件,源碼如下:
<?php
/*
* 此文件用于驗(yàn)證短信服務(wù)API接口,供開(kāi)發(fā)時(shí)參考
* 執(zhí)行驗(yàn)證前請(qǐng)確保文件為utf-8編碼,并替換相應(yīng)參數(shù)為您自己的信息,并取消相關(guān)調(diào)用的注釋
* 建議驗(yàn)證前先執(zhí)行Test.php驗(yàn)證PHP環(huán)境
*
* 2017/11/30
*/
namespace AliyunDySDKLiteSms;
require_once dirname(__DIR__) . "/SignatureHelper.php";
use AliyunDySDKLiteSignatureHelper;
/**
* 發(fā)送短信
*/
function sendSms() {
$params = array ();
// *** 需用戶填寫(xiě)部分 ***
// fixme 必填:是否啟用https
$security = false;
// fixme 必填: 請(qǐng)參閱 https://ak-console.aliyun.com/ 取得您的AK信息
$accessKeyId = "your access key id";
$accessKeySecret = "your access key secret";
// fixme 必填: 短信接收號(hào)碼
$params["PhoneNumbers"] = "17000000000";
// fixme 必填: 短信簽名,應(yīng)嚴(yán)格按"簽名名稱"填寫(xiě),請(qǐng)參考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
$params["SignName"] = "鯤圭云計(jì)算";
// fixme 必填: 短信模板Code,應(yīng)嚴(yán)格按"模板CODE"填寫(xiě), 請(qǐng)參考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
$params["TemplateCode"] = "SMS_182320029";
// fixme 可選: 設(shè)置模板參數(shù), 假如模板中存在變量需要替換則為必填項(xiàng)
$params['TemplateParam'] = Array (
"code" => "12345",
#"product" => "阿里通信"
);
// fixme 可選: 設(shè)置發(fā)送短信流水號(hào)
//$params['OutId'] = "12345";
// fixme 可選: 上行短信擴(kuò)展碼, 擴(kuò)展碼字段控制在7位或以下,無(wú)特殊需求用戶請(qǐng)忽略此字段
//$params['SmsUpExtendCode'] = "1234567";
// *** 需用戶填寫(xiě)部分結(jié)束, 以下代碼若無(wú)必要無(wú)需更改 ***
if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {
$params["TemplateParam"] = json_encode($params["TemplateParam"], JSON_UNESCAPED_UNICODE);
}
// 初始化SignatureHelper實(shí)例用于設(shè)置參數(shù),簽名以及發(fā)送請(qǐng)求
$helper = new SignatureHelper();
// 此處可能會(huì)拋出異常,注意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"); // 顯示錯(cuò)誤提示,僅用于測(cè)試時(shí)排查問(wèn)題
error_reporting(E_ALL); // 顯示所有錯(cuò)誤提示,僅用于測(cè)試時(shí)排查問(wèn)題
set_time_limit(0); // 防止腳本超時(shí),僅用于測(cè)試使用,生產(chǎn)環(huán)境請(qǐng)按實(shí)際情況設(shè)置
header("Content-Type: text/plain; charset=utf-8"); // 輸出為utf-8的文本格式,僅用于測(cè)試
// 驗(yàn)證發(fā)送短信(SendSms)接口
print_r(sendSms());
給你代碼往期回顧:
