分享在php中发送短信验证码之具体操作方法

在PHP中如何发送短信验证码?操作过程大致如下:


1、实名认证并开通短信API接口服务,获取API请求KEY;

2、调用接口申请短信模板并等待审核通过;

3、调用API接口,通过“function juheHttpRequest($url,$params=false,$ispost=0){...}”方式发起网络请求,按照申请的模板发生短信到指定手机号即可。



分享在php中发送短信验证码之具体操作方法


本文适用于windows7系统、PHP8.1版、DELL G3电脑


分享在php中发送短信验证码之具体操作方法


特别说明


●  请仔细阅读官网的接口文档,这是聚合数据与开发者的约定,它将有助于您对接口业务的理解,从而顺利地开展开发工作


●  本示例的侧重点,是帮助开发者顺利获取到接口的响应数据,对于开发者的数据处理等业务逻辑,本文不会展开讨论


●  本示例旨在最大程度简化开发者的调用步骤,没有将功能模块封装为独立的工具类,方便开发者一键复制后直接运行调试


●  由于水平能力所限,示例中难免存在错误和疏漏,如有发现还请大家批评指正


参数说明


模板申请接口参数:


模板申请接口参数


短信发送接口参数:


短信发送接口参数


全部代码


模板申请接口请求示例:


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


运行结果:


运行结果

运行结果


关于在php中发送短信验证码之具体操作方法分享到这里就结束了,翼速应用平台内有更多相关资讯,欢迎查阅!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题