php怎麼傳送簡訊驗證碼

2022-10-20 22:00:28

傳送方法: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

  • 購買資料的請求次數(免費和有贈送次數的介面可以先行偵錯)

  • 必須按照檔案提供的介面申請模板後,待客服稽核通過後才能呼叫介面

特別說明

  • 請仔細閱讀官網的介面檔案,這是聚合資料與開發者的約定,它將有助於您對介面業務的理解,從而順利地開展開發工作

  • 本範例的側重點,是幫助開發者順利獲取到介面的響應資料,對於開發者的資料處理等業務邏輯,本文不會展開討論

  • 本範例旨在最大程度簡化開發者的呼叫步驟,沒有將功能模組封裝為獨立的工具類,方便開發者一鍵複製後直接執行偵錯

  • 由於水平能力所限,範例中難免存在錯誤和疏漏,如有發現還請大家批評指正

引數說明

模板申請介面引數:

引數名必填說明
signaturetrue模板簽名(長度為2-16箇中文字元),比如:公司名、產品名稱
keytrue申請的請求key
tplcodetrue可供選擇的模板id

簡訊傳送介面引數:

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

全部程式碼

模板申請介面請求範例

  <?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;
    }
登入後複製

執行結果

1.png

2.png

推薦學習:《》

以上就是php怎麼傳送簡訊驗證碼的詳細內容,更多請關注TW511.COM其它相關文章!