Home  >  Article  >  Backend Development  >  How to send SMS verification code in php

How to send SMS verification code in php

青灯夜游
青灯夜游Original
2022-10-20 18:43:461512browse

Sending method: 1. Real-name authentication and activate SMS API interface service, obtain API request KEY; 2. Call the interface to apply for SMS template and wait for approval; 3. Call the API interface, through "function juheHttpRequest($url ,$params=false,$ispost=0){...}" to initiate a network request, and send a text message to the specified mobile phone number according to the applied template.

How to send SMS verification code in php

The operating environment of this tutorial: Windows 7 system, PHP version 8.1, DELL G3 computer

PHP-based verification Code SMS API interface calling example

Preliminary preparation

  • Real-name authentication

According to the requirements of the operator, this interface is currently only open to real-name authenticated enterprise users, so please make sure you are a real-name authenticated enterprise user before using it

  • Apply for the interface and obtain the calling credential request key of the interface through

    https://www.juhe.cn/docs/api/id/486?s=cpphpcn

    Self-service application to open the interface You can see the call certificate request key of this interface in Personal Center ➡️ Data Center ➡️ My API module

  • The number of requests to purchase data (free and gifted times) The interface can be debugged first)
  • You must apply for a template according to the interface provided in the
  • document

    , and the interface can only be called after the customer service review and approval

Special Instructions

    Please read the
  • Interface Document

    of the official website carefully, this is the aggregation data and development It will help you understand the interface business and carry out development work smoothly

  • The focus of this example is to help developers successfully obtain the response of the interface Data, for developers' data processing and other business logic, this article will not discuss
  • This example aims to simplify the developer's calling steps to the greatest extent, and does not encapsulate the functional modules into independent Tool class, which is convenient for developers to copy and run and debug directly with one click
  • Due to limited ability, there are inevitably errors and omissions in the examples. If you find any, please criticize and correct them

Parameter descriptionTemplate application interface parameters:

Parameters NamesignaturekeytplcodeSMS sending interface parameters:
Required Description
true Template signature (The length is 2-16 Chinese characters), such as: company name, product name
true Apply request key
true Optional template id

Parameter name## mobiletrueMobile numbertpl_idtruetemplate idkeytrueApplying request keytpl_valuefalse Template variables, determined by variables in the template, can be empty
Required Description
All codes

Template application interface request example

  <?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;
    }
SMS sending interface request example

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

How to send SMS verification code in php

Recommended learning: "How to send SMS verification code in phpPHP Video Tutorial

"

The above is the detailed content of How to send SMS verification code in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn