今天小編給大家分享一下php如何發(fā)送短信的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
成都創(chuàng)新互聯(lián),是成都地區(qū)的互聯(lián)網(wǎng)解決方案提供商,用心服務(wù)為企業(yè)提供網(wǎng)站建設(shè)、app軟件定制開發(fā)、小程序設(shè)計(jì)、系統(tǒng)按需求定制網(wǎng)站和微信代運(yùn)營(yíng)服務(wù)。經(jīng)過數(shù)十余年的沉淀與積累,沉淀的是技術(shù)和服務(wù),讓客戶少走彎路,踏實(shí)做事,誠(chéng)實(shí)做人,用情服務(wù),致力做一個(gè)負(fù)責(zé)任、受尊敬的企業(yè)。對(duì)客戶負(fù)責(zé),就是對(duì)自己負(fù)責(zé),對(duì)企業(yè)負(fù)責(zé)。
發(fā)送方法:1、實(shí)名認(rèn)證并開通短信API接口服務(wù),獲取API請(qǐng)求KEY;2、申請(qǐng)短信模板并等待審核通過;3、調(diào)用API接口,通過“function juheHttpRequest($url,$params=false,$ispost=0){...}”方式發(fā)起網(wǎng)絡(luò)請(qǐng)求,處理數(shù)據(jù)并返回結(jié)果;4、用“$response=juheHttpRequest(...);”接受內(nèi)容并輸出。
基于PHP的短信API接口調(diào)用示例
前期準(zhǔn)備
實(shí)名認(rèn)證
根據(jù)運(yùn)營(yíng)商的要求,目前此接口只對(duì)實(shí)名認(rèn)證的企業(yè)用戶開放使用,所以在使用之前請(qǐng)確保您是實(shí)名認(rèn)證的企業(yè)用戶
申請(qǐng)接口,獲取接口的調(diào)用憑證請(qǐng)求key
通過 https://www.juhe.cn/docs/api/id/54?s=cpphpcn
自助申請(qǐng)開通接口
可以在個(gè)人中心 ?? 數(shù)據(jù)中心 ?? 我的API 模塊看到此接口的調(diào)用憑證請(qǐng)求key
購(gòu)買數(shù)據(jù)的請(qǐng)求次數(shù)(免費(fèi)和有贈(zèng)送次數(shù)的接口可以先行調(diào)試)
在聚合官網(wǎng)的個(gè)人中心里面提前申請(qǐng)短信模板,待客服審核通過后才能調(diào)用接口
特別說明
請(qǐng)仔細(xì)閱讀官網(wǎng)的接口文檔,這是聚合數(shù)據(jù)與開發(fā)者的約定,它將有助于您對(duì)接口業(yè)務(wù)的理解,從而順利地開展開發(fā)工作
本示例的側(cè)重點(diǎn),是幫助開發(fā)者順利獲取到接口的響應(yīng)數(shù)據(jù),對(duì)于開發(fā)者的數(shù)據(jù)處理等業(yè)務(wù)邏輯,本文不會(huì)展開討論
本示例旨在最大程度簡(jiǎn)化開發(fā)者的調(diào)用步驟,沒有將功能模塊封裝為獨(dú)立的工具類,方便開發(fā)者一鍵復(fù)制后直接運(yùn)行調(diào)試
由于水平能力所限,示例中難免存在錯(cuò)誤和疏漏,如有發(fā)現(xiàn)還請(qǐng)大家批評(píng)指正
接口備注
運(yùn)營(yíng)商限制同1個(gè)號(hào)碼同1個(gè)簽名的內(nèi)容1分鐘內(nèi)只能接收1條,10分鐘3條,1小時(shí)內(nèi)4條,一天20條,否則可能會(huì)被運(yùn)營(yíng)商屏蔽
短信api接口本身不限制發(fā)送頻率,具體發(fā)送頻率需要用戶自行設(shè)置,只限國(guó)內(nèi)手機(jī)號(hào)
請(qǐng)務(wù)必添加圖片驗(yàn)證碼等防惡意攻擊的機(jī)制,以防短信轟炸,營(yíng)銷內(nèi)容最后加回T退訂,營(yíng)銷短信發(fā)送時(shí)間為:8:30至21:30。營(yíng)銷內(nèi)容有防釣魚機(jī)制,請(qǐng)勿單條發(fā)送,移動(dòng)20條起(循環(huán)調(diào)用),聯(lián)通電信不限制
短信內(nèi)容(包含簽名)小于等于70個(gè)字符為計(jì)費(fèi)1條。超過70個(gè)字符為長(zhǎng)短信,按每67個(gè)字計(jì)費(fèi)
參數(shù)說明
參數(shù)名 | 必填 | 說明 |
---|---|---|
mobile | true | 手機(jī)號(hào) |
tpl_id | true | 模板id |
key | true | 申請(qǐng)的請(qǐng)求key |
tpl_value | false | 模板變量,根據(jù)模板中變量決定,可為空 |
全部代碼
'模板id',
// 您申請(qǐng)的接口調(diào)用Key
'key' => '您申請(qǐng)的接口調(diào)用Key',
//發(fā)送的手機(jī)號(hào)
'mobile' => '發(fā)送的手機(jī)號(hào)',
//結(jié)合自己的模板中的變量進(jìn)行設(shè)置,如果沒有變量,可以刪除此參數(shù)
'tpl_value' => urlencode('#total#=1000used#=100balance#=900'),
];
$paramsString = http_build_query($params);
// 發(fā)起接口網(wǎng)絡(luò)請(qǐng)求
$response = null;
try {
$response = juheHttpRequest($apiUrl, $paramsString, 1);
} catch (Exception $e) {
var_dump($e);
//此處根據(jù)自己的需求進(jìn)行自身的異常處理
}
if (!$response) {
echo "請(qǐng)求異常" . PHP_EOL;
}
$result = json_decode($response, true);
if (!$result) {
echo "請(qǐng)求異常" . PHP_EOL;
}
$errorCode = $result['error_code'];
if ($errorCode === 0) {
$data = $result['result'];
echo "請(qǐng)求唯一標(biāo)示:{$data["sid"]}" . PHP_EOL;
echo "請(qǐng)求消耗次數(shù):{$data["fee"]}" . PHP_EOL;
} else {
// 請(qǐng)求異常
echo "請(qǐng)求異常:{$errorCode}_{$result["reason"]}" . PHP_EOL;
}
/**
* 發(fā)起網(wǎng)絡(luò)請(qǐng)求函數(shù)
* @param string $url 請(qǐng)求的URL
* @param bool $params 請(qǐng)求的參數(shù)內(nèi)容
* @param int $ispost 是否POST請(qǐng)求
* @return bool|string 返回內(nèi)容
*/
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如何發(fā)送短信”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。