Heim  >  Artikel  >  Backend-Entwicklung  >  So senden Sie einen SMS-Bestätigungscode in PHP

So senden Sie einen SMS-Bestätigungscode in PHP

青灯夜游
青灯夜游Original
2022-10-20 18:43:461501Durchsuche

Sendemethode: 1. Authentifizierung mit echtem Namen und Aktivierung des SMS-API-Schnittstellendienstes, um den API-Anfrageschlüssel zu erhalten. 2. Rufen Sie die Schnittstelle auf, um die SMS-Vorlage zu beantragen, und warten Sie auf die Genehmigung. 3. Rufen Sie die API-Schnittstelle auf und übergeben Sie sie. Funktion juheHttpRequest($url,$params= false,$ispost=0){...}“-Methode zum Initiieren einer Netzwerkanfrage und zum Senden einer Textnachricht an die angegebene Mobiltelefonnummer gemäß der angewendeten Vorlage.

So senden Sie einen SMS-Bestätigungscode in PHP

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, DELL G3-Computer

Beispiel für den Aufruf einer SMS-API-Schnittstelle mit PHP-basiertem Bestätigungscode

Vorbereitung

  • Authentifizierung mit echtem Namen

Gemäß den Anforderungen des Betreibers steht diese Schnittstelle derzeit nur Unternehmensbenutzern mit Authentifizierung mit echtem Namen offen. Stellen Sie daher bitte sicher, dass Sie ein Unternehmensbenutzer mit Authentifizierung mit echtem Namen sind, bevor Sie sie verwenden

  • Bewerben Sie sich für die Schnittstelle und erhalten Sie die Anrufanmeldeinformationen des Schnittstellenanforderungsschlüssels

    Über die https://www.juhe.cn/docs/api/id/486?s=cpphpcnSelf-Service-Anwendung zum Öffnen der Schnittstelle

    können Sie zu Personal Center ➡️ Data Center ➡️ My API-Modul gehen, um den Anruf anzuzeigen Anmeldeinformationen dieser Schnittstelle zum Anfordern des Schlüssels

  • Die Anzahl der Anfragen zum Kauf von Daten (kostenlos und Schnittstellen mit Geschenkzeiten). Sie können es zuerst debuggen)

  • Sie müssen eine Vorlage gemäß der von bereitgestellten Schnittstelle beantragen Dokument, und die Schnittstelle kann erst aufgerufen werden, nachdem die Kundendienstüberprüfung bestanden wurde

Besondere Anweisungen

  • Bitte lesen Sie das Schnittstellendokument auf der offiziellen Website sorgfältig durch Dies ist eine Vereinbarung zwischen aggregierten Daten und Entwickler. Es wird Ihnen helfen, das Schnittstellengeschäft zu verstehen und die Entwicklungsarbeit reibungslos durchzuführen

  • Der Schwerpunkt dieses Beispiels liegt darauf, Entwicklern dabei zu helfen, die Antwort der Schnittstelle erfolgreich zu erhalten. In diesem Artikel wird nicht auf die Geschäftslogik des Entwicklers eingegangen Datenverarbeitung. Dieses Beispiel soll die Aufrufschritte des Entwicklers weitestgehend vereinfachen. Es kapselt die Funktionsmodule nicht in unabhängige Toolklassen, um Entwicklern das Ausführen und Debuggen direkt nach dem Kopieren zu erleichtern , es wird zwangsläufig Fehler und Auslassungen in den Beispielen geben, bitte kritisieren und korrigieren Sie diese

    Beschreibung
  • Signatur

    wahr
Vorlagensignatur (Länge beträgt 2-16 chinesische Zeichen), wie zum Beispiel: Firmenname, Produktname

Schlüssel

wahr

Anfrageschlüssel anwendenSMS-Sendeschnittstellenparameter: ErforderlichHandytpl_id
tplcode true Optionale Vorlagen-ID
Parametername
Anweisungen
wahr Handynummer
true

template idtpl_valueAlle CodesBeispiel für eine Anforderung einer VorlagenanwendungsschnittstelleLaufende ErgebnisseEmpfohlenes Lernen: „PHP-Video-Tutorial“
key true application request key
false template variable, bestimmt durch die Variablen in Vorlage, kann leer sein
  <?php
    // 请求的接口URL
    $apiUrl = &#39;http://v.juhe.cn/vercodesms/submitTpl.php?&#39;;    // 请求参数
    $params = [        // 模板签名
        &#39;signature&#39; => &#39;模板签名(长度为2-16个中文字符),比如:公司名、产品名称&#39;,        // 您申请的接口调用Key
        &#39;key&#39; => &#39;您申请的接口调用Key&#39;,        //发送的手机号
        &#39;tplcode&#39; => &#39;可供选择的模板id&#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 "您申请的模板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, &#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;
    }
Beispiel für eine Anforderung einer SMS-Sendeschnittstelle
    <?php
    // 请求的接口URL
    $apiUrl = &#39;http://v.juhe.cn/vercodesms/send?&#39;;
    // 请求参数
    $params = [
        // 模板id
        &#39;tplId&#39; => &#39;模板id&#39;,
        // 您申请的接口调用Key
        &#39;key&#39; => &#39;您申请的接口调用Key&#39;,
        //发送的手机号
        &#39;mobile&#39; => &#39;发送的手机号&#39;,
        //结合自己的模板中的变量进行设置,如果没有变量,可以删除此参数
        &#39;tplValue&#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;
    } 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;
    }

Das obige ist der detaillierte Inhalt vonSo senden Sie einen SMS-Bestätigungscode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn