首頁 >後端開發 >PHP問題 >php怎麼傳簡訊

php怎麼傳簡訊

青灯夜游
青灯夜游原創
2022-10-19 18:55:161593瀏覽

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

php怎麼傳簡訊

本教學操作環境: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個字計費#參數說明參數名稱
必填 說明
mobile

true手機號碼

tpl_id

true######範本id###########key## ####true######申請的請求key############tpl_value######false######範本變數,根據範本中變數決定,可為空#####################全程式碼##########
<?php
// 请求的接口URL
$apiUrl = &#39;http://v.juhe.cn/sms/send?&#39;;
// 请求参数
$params = [
    // 模板id
    &#39;tpl_id&#39; => &#39;模板id&#39;,
    // 您申请的接口调用Key
    &#39;key&#39; => &#39;您申请的接口调用Key&#39;,
    //发送的手机号
    &#39;mobile&#39; => &#39;发送的手机号&#39;,
    //结合自己的模板中的变量进行设置,如果没有变量,可以删除此参数
    &#39;tpl_value&#39; => urlencode(&#39;#total#=1000&#used#=100&#balance#=900&#39;),
];
$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[&#39;error_code&#39;];
if ($errorCode === 0) {
    $data = $result[&#39;result&#39;];

    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, &#39;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36&#39;);
    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 . &#39;?&#39; . $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怎麼傳簡訊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn