php怎麼傳送簡訊

2022-10-19 22:01:44

傳送方法:1、實名認證並開通簡訊API介面服務,獲取API請求KEY;2、申請簡訊模板並等待稽核通過;3、呼叫API介面,通過「function juheHttpRequest($url,$params=false,$ispost=0){...}」方式發起網路請求,處理資料並返回結果;4、用「$response=juheHttpRequest(...);」接受內容並輸出。

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

基於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個字計費

引數說明

引數名必填說明
mobiletrue手機號
tpl_idtrue模板id
keytrue申請的請求key
tpl_valuefalse模板變數,根據模板中變數決定,可為空

全部程式碼

<?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怎麼傳送簡訊的詳細內容,更多請關注TW511.COM其它相關文章!