在PHP中如何发送短信验证码?操作过程大致如下:
1、实名认证并开通短信API接口服务,获取API请求KEY;
2、调用接口申请短信模板并等待审核通过;
3、调用API接口,通过“function juheHttpRequest($url,$params=false,$ispost=0){...}”方式发起网络请求,按照申请的模板发生短信到指定手机号即可。
本文适用于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中发送短信验证码之具体操作方法分享到这里就结束了,翼速应用平台内有更多相关资讯,欢迎查阅!
我来说两句