Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menghantar kod pengesahan SMS dalam php

Bagaimana untuk menghantar kod pengesahan SMS dalam php

青灯夜游
青灯夜游asal
2022-10-20 18:43:461560semak imbas

Kaedah penghantaran: 1. Pengesahan nama sebenar dan aktifkan perkhidmatan antara muka API SMS, dapatkan KUNCI permintaan API 2. Panggil antara muka untuk memohon templat SMS dan tunggu kelulusan 3. Hubungi antara muka API, melalui "function juheHttpRequest($url ,$params=false,$ispost=0){...}" untuk memulakan permintaan rangkaian dan menghantar mesej teks ke nombor telefon mudah alih yang ditentukan mengikut templat yang digunakan.

Bagaimana untuk menghantar kod pengesahan SMS dalam php

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer DELL G3

PHP- contoh panggilan antara muka API SMS pengesahan berasaskan

Persediaan awal

  • Pengesahan nama sebenar

Mengikut keperluan pengendali, antara muka ini pada masa ini hanya terbuka kepada pengguna perusahaan yang disahkan nama sebenar, jadi sila pastikan anda adalah pengguna perusahaan yang disahkan nama sebenar sebelum menggunakannya

  • Mohon untuk antara muka dan dapatkan kunci permintaan kelayakan panggilan antara muka

    Melalui https://www.juhe.cn/docs/api/id/486?s=cpphpcn aplikasi layan diri untuk membuka antara muka

    Anda boleh melihat panggilan antara muka ini di Pusat Peribadi ➡️ Pusat Data ➡️ Kunci permintaan Baucar Modul API saya

  • Bilangan permintaan untuk membeli data (antara muka percuma dan percuma boleh dinyahpepijat dahulu)

  • Mesti ikut dokumen Selepas memohon templat antara muka yang disediakan, antara muka hanya boleh dipanggil selepas semakan perkhidmatan pelanggan diluluskan

Arahan khas

  • Sila baca dokumen antara muka laman web rasmi ini dengan teliti perjanjian antara data agregat dan pembangun Ia akan membantu anda memahami perniagaan antara muka dan menjalankan kerja pembangunan dengan lancar

  • Fokus contoh ini adalah untuk membantu pembangun berjaya memperoleh data tindak balas. antara muka. Artikel ini tidak akan membincangkan logik perniagaan pembangun seperti pemprosesan data

  • Contoh ini bertujuan untuk memudahkan langkah panggilan untuk pembangun pada tahap yang paling besar Modul fungsi tidak dirangkumkan ke dalam kelas alat bebas, supaya pembangun boleh terus menjalankan dan menyahpepijat selepas menyalinnya dengan satu klik

  • Disebabkan keupayaan terhad, pasti terdapat ralat dan ketinggalan dalam contoh. sila kritik dan betulkannya

Penerangan Parameter

Parameter antara muka aplikasi templat:

参数名 必填 说明
signature true 模板签名(长度为2-16个中文字符),比如:公司名、产品名称
key true 申请的请求key
tplcode true 可供选择的模板id

Parameter antara muka penghantaran SMS:

参数名 必填 说明
mobile true 手机号
tpl_id true 模板id
key true 申请的请求key
tpl_value false 模板变量,根据模板中变量决定,可为空

Semua kod

Contoh permintaan antara muka aplikasi templat

  <?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;
    }

Contoh permintaan antara muka penghantaran SMS

    <?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;
    }

Jalankan hasil

Bagaimana untuk menghantar kod pengesahan SMS dalam php

Bagaimana untuk menghantar kod pengesahan SMS dalam php

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menghantar kod pengesahan SMS dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn