您好,登錄后才能下訂單哦!
這篇文章主要介紹了php如何發送短信驗證碼的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇php如何發送短信驗證碼文章都會有所收獲,下面我們一起來看看吧。
發送方法:1、實名認證并開通短信API接口服務,獲取API請求KEY;2、調用接口申請短信模板并等待審核通過;3、調用API接口,通過“function juheHttpRequest($url,$params=false,$ispost=0){...}”方式發起網絡請求,按照申請的模板發生短信到指定手機號即可。
基于PHP的驗證碼短信API接口調用示例
前期準備
實名認證
根據運營商的要求,目前此接口只對實名認證的企業用戶開放使用,所以在使用之前請確保您是實名認證的企業用戶
申請接口,獲取接口的調用憑證請求key
通過 https://www.juhe.cn/docs/api/id/486?s=cpphpcn
自助申請開通接口
可以在個人中心 ?? 數據中心 ?? 我的API 模塊看到此接口的調用憑證請求key
購買數據的請求次數(免費和有贈送次數的接口可以先行調試)
必須按照文檔提供的接口申請模板后,待客服審核通過后才能調用接口
特別說明
請仔細閱讀官網的接口文檔,這是聚合數據與開發者的約定,它將有助于您對接口業務的理解,從而順利地開展開發工作
本示例的側重點,是幫助開發者順利獲取到接口的響應數據,對于開發者的數據處理等業務邏輯,本文不會展開討論
本示例旨在最大程度簡化開發者的調用步驟,沒有將功能模塊封裝為獨立的工具類,方便開發者一鍵復制后直接運行調試
由于水平能力所限,示例中難免存在錯誤和疏漏,如有發現還請大家批評指正
參數說明
模板申請接口參數:
參數名 | 必填 | 說明 |
---|---|---|
signature | true | 模板簽名(長度為2-16個中文字符),比如:公司名、產品名稱 |
key | true | 申請的請求key |
tplcode | true | 可供選擇的模板id |
短信發送接口參數:
參數名 | 必填 | 說明 |
---|---|---|
mobile | true | 手機號 |
tpl_id | true | 模板id |
key | true | 申請的請求key |
tpl_value | false | 模板變量,根據模板中變量決定,可為空 |
全部代碼
模板申請接口請求示例
<?php
// 請求的接口URL
$apiUrl = 'http://v.juhe.cn/vercodesms/submitTpl.php?'; // 請求參數
$params = [ // 模板簽名
'signature' => '模板簽名(長度為2-16個中文字符),比如:公司名、產品名稱', // 您申請的接口調用Key
'key' => '您申請的接口調用Key', //發送的手機號
'tplcode' => '可供選擇的模板id',
];
$paramsString = http_build_query($params);
// 發起接口網絡請求
$response = null; try {
$response = juheHttpRequest($apiUrl, $paramsString, 1);
} catch (Exception $e) {
var_dump($e); //此處根據自己的需求進行自身的異常處理
} if (!$response) { echo "請求異常" . PHP_EOL;
}
$result = json_decode($response, true); if (!$result) { echo "請求異常" . PHP_EOL;
}
$errorCode = $result['error_code']; if ($errorCode === 0) {
$data = $result['result']; echo "您申請的模板id:{$data["tplId"]}" . PHP_EOL;
} else { // 請求異常
echo "請求異常:{$errorCode}_{$result["reason"]}" . PHP_EOL;
}
/**
* 發起網絡請求函數
* @param string $url 請求的URL
* @param bool $params 請求的參數內容
* @param int $ispost 是否POST請求
* @return bool|string 返回內容
*/
function juheHttpRequest($url, $params = false, $ispost = 0) {
$httpInfo = [];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_TIMEOUT, 12);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
} else { if ($params) {
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$response = curl_exec($ch); if ($response === FALSE) { // echo "cURL Error: ".curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch); return $response;
}
短信發送接口請求示例
<?php
// 請求的接口URL
$apiUrl = 'http://v.juhe.cn/vercodesms/send?';
// 請求參數
$params = [
// 模板id
'tplId' => '模板id',
// 您申請的接口調用Key
'key' => '您申請的接口調用Key',
//發送的手機號
'mobile' => '發送的手機號',
//結合自己的模板中的變量進行設置,如果沒有變量,可以刪除此參數
'tplValue' => urlencode('#total#=1000&#used#=100&#balance#=900'),
];
$paramsString = http_build_query($params);
// 發起接口網絡請求
$response = null;
try {
$response = juheHttpRequest($apiUrl, $paramsString, 1);
} catch (Exception $e) {
var_dump($e);
//此處根據自己的需求進行自身的異常處理
}
if (!$response) {
echo "請求異常" . PHP_EOL;
}
$result = json_decode($response, true);
if (!$result) {
echo "請求異常" . PHP_EOL;
}
$errorCode = $result['error_code'];
if ($errorCode === 0) {
$data = $result['result'];
echo "請求唯一標示:{$data["sid"]}" . PHP_EOL;
} else {
// 請求異常
echo "請求異常:{$errorCode}_{$result["reason"]}" . PHP_EOL;
}
/**
* 發起網絡請求函數
* @param string $url 請求的URL
* @param bool $params 請求的參數內容
* @param int $ispost 是否POST請求
* @return bool|string 返回內容
*/
function juheHttpRequest($url, $params = false, $ispost = 0)
{
$httpInfo = [];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_TIMEOUT, 12);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
} else {
if ($params) {
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$response = curl_exec($ch);
if ($response === FALSE) {
// echo "cURL Error: ".curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $response;
}
運行結果
關于“php如何發送短信驗證碼”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“php如何發送短信驗證碼”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。