您好,登錄后才能下訂單哦!
今天小編給大家分享一下php如何發送短信的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
發送方法:1、實名認證并開通短信API接口服務,獲取API請求KEY;2、申請短信模板并等待審核通過;3、調用API接口,通過“function juheHttpRequest($url,$params=false,$ispost=0){...}”方式發起網絡請求,處理數據并返回結果;4、用“$response=juheHttpRequest(...);”接受內容并輸出。
基于PHP的短信API接口調用示例
前期準備
實名認證
根據運營商的要求,目前此接口只對實名認證的企業用戶開放使用,所以在使用之前請確保您是實名認證的企業用戶
申請接口,獲取接口的調用憑證請求key
通過 https://www.juhe.cn/docs/api/id/54?s=cpphpcn
自助申請開通接口
可以在個人中心 ?? 數據中心 ?? 我的API 模塊看到此接口的調用憑證請求key
購買數據的請求次數(免費和有贈送次數的接口可以先行調試)
在聚合官網的個人中心里面提前申請短信模板,待客服審核通過后才能調用接口
特別說明
請仔細閱讀官網的接口文檔,這是聚合數據與開發者的約定,它將有助于您對接口業務的理解,從而順利地開展開發工作
本示例的側重點,是幫助開發者順利獲取到接口的響應數據,對于開發者的數據處理等業務邏輯,本文不會展開討論
本示例旨在最大程度簡化開發者的調用步驟,沒有將功能模塊封裝為獨立的工具類,方便開發者一鍵復制后直接運行調試
由于水平能力所限,示例中難免存在錯誤和疏漏,如有發現還請大家批評指正
接口備注
運營商限制同1個號碼同1個簽名的內容1分鐘內只能接收1條,10分鐘3條,1小時內4條,一天20條,否則可能會被運營商屏蔽
短信api接口本身不限制發送頻率,具體發送頻率需要用戶自行設置,只限國內手機號
請務必添加圖片驗證碼等防惡意攻擊的機制,以防短信轟炸,營銷內容最后加回T退訂,營銷短信發送時間為:8:30至21:30。營銷內容有防釣魚機制,請勿單條發送,移動20條起(循環調用),聯通電信不限制
短信內容(包含簽名)小于等于70個字符為計費1條。超過70個字符為長短信,按每67個字計費
參數說明
參數名 | 必填 | 說明 |
---|---|---|
mobile | true | 手機號 |
tpl_id | true | 模板id |
key | true | 申請的請求key |
tpl_value | false | 模板變量,根據模板中變量決定,可為空 |
全部代碼
<?php
// 請求的接口URL
$apiUrl = 'http://v.juhe.cn/sms/send?';
// 請求參數
$params = [
// 模板id
'tpl_id' => '模板id',
// 您申請的接口調用Key
'key' => '您申請的接口調用Key',
//發送的手機號
'mobile' => '發送的手機號',
//結合自己的模板中的變量進行設置,如果沒有變量,可以刪除此參數
'tpl_value' => 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;
echo "請求消耗次數:{$data["fee"]}" . 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如何發送短信”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。