傳送方法:1、實名認證並開通簡訊API介面服務,獲取API請求KEY;2、呼叫介面申請簡訊模板並等待稽核通過;3、呼叫API介面,通過「function juheHttpRequest($url,$params=false,$ispost=0){...}」方式發起網路請求,按照申請的模板發生簡訊到指定手機號即可。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
基於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怎麼傳送簡訊驗證碼的詳細內容,更多請關注TW511.COM其它相關文章!