发送方法:1、实名认证并开通短信API接口服务,获取API请求KEY;2、调用接口申请短信模板并等待审核通过;3、调用API接口,通过“function juheHttpRequest($url,$params=false,$ispost=0){...}”方式发起网络请求,按照申请的模板发生短信到指定手机号即可。
本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
基于PHP的验证码短信API接口调用示例
前期准备
实名认证
根据运营商的要求,目前此接口只对实名认证的企业用户开放使用,所以在使用之前请确保您是实名认证的企业用户
-
申请接口,获取接口的调用凭证请求key
通过
https://www.juhe.cn/docs/api/id/486?s=cpphpcn
自助申请开通接口可以在个人中心 ➡️ 数据中心 ➡️ 我的API 模块看到此接口的调用凭证请求key
购买数据的请求次数(免费和有赠送次数的接口可以先行调试)
必须按照文档提供的接口申请模板后,待客服审核通过后才能调用接口
特别说明
请仔细阅读官网的接口文档,这是聚合数据与开发者的约定,它将有助于您对接口业务的理解,从而顺利地开展开发工作
本示例的侧重点,是帮助开发者顺利获取到接口的响应数据,对于开发者的数据处理等业务逻辑,本文不会展开讨论
本示例旨在最大程度简化开发者的调用步骤,没有将功能模块封装为独立的工具类,方便开发者一键复制后直接运行调试
由于水平能力所限,示例中难免存在错误和疏漏,如有发现还请大家批评指正
参数说明
模板申请接口参数:
参数名 | 必填 | 说明 |
---|---|---|
signature | true | 模板签名(长度为2-16个中文字符),比如:公司名、产品名称 |
key | true | 申请的请求key |
tplcode | true | 可供选择的模板id |
短信发送接口参数:
参数名 | 必填 | 说明 |
---|---|---|
mobile | true | 手机号 |
tpl_id | true | 模板id |
key | true | 申请的请求key |
tpl_value | false | 模板变量,根据模板中变量决定,可为空 |
全部代码
模板申请接口请求示例
<?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视频教程》
以上是php怎么发送短信验证码的详细内容。更多信息请关注PHP中文网其他相关文章!

本文比较了酸和基本数据库模型,详细介绍了它们的特征和适当的用例。酸优先确定数据完整性和一致性,适合财务和电子商务应用程序,而基础则侧重于可用性和

本文讨论了确保PHP文件上传的确保,以防止诸如代码注入之类的漏洞。它专注于文件类型验证,安全存储和错误处理以增强应用程序安全性。

本文讨论了在PHP中实施API速率限制的策略,包括诸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之类的库。它还涵盖监视,动态调整速率限制和手

本文讨论了使用password_hash和pyspasswify在PHP中使用密码的好处。主要论点是,这些功能通过自动盐,强大的哈希算法和SECH来增强密码保护

本文讨论了OWASP在PHP和缓解策略中的十大漏洞。关键问题包括注射,验证损坏和XSS,并提供用于监视和保护PHP应用程序的推荐工具。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。