查询三网话费余额接口,移动话费余额接口、电信话费余额接口、联通话费余额的接口+html前端查询UI界面

server/2024/12/19 3:31:38/

PHP是直接请求的接口,HTML代码也是直接请求的接口。如果HTML想上线运行,还是需要做下安全的。

下边是PHP代码

<?php  
// 定义API接口地址和参数  
$apiUrl = "https://api.taolale.com/api/Inquiry_Phone_Charges/get";  //API文档地址:https://api.taolale.com/doc/13
$apiKey = "你的key"; // 替换为你的API Key  
$mobile = "需要查询的手机号码"; // 替换为需要查询的手机号码  
$workType = "运营商类别"; // 替换为运营商类别,例如 '移动', '联通', '电信'  // 构建查询字符串  
$queryString = http_build_query([  'key' => $apiKey,  'mobile' => $mobile,  'work_type' => $workType  
]);  // 初始化cURL会话  
$ch = curl_init();  // 设置cURL选项  
curl_setopt($ch, CURLOPT_URL, $apiUrl . "?" . $queryString); // URL + 查询字符串  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回响应结果而不是直接输出  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); // 设置请求方式为POST  
curl_setopt($ch, CURLOPT_HTTPHEADER, [  'application/x-www-form-urlencoded' // 设置请求头
]);  // 发送请求并获取响应  
$response = curl_exec($ch);  // 检查是否有错误发生  
if (curl_errno($ch)) {  echo 'cURL Error: ' . curl_error($ch);  
} else {  // 解码JSON响应  $responseData = json_decode($response, true);  // 检查解码是否成功  if (json_last_error() === JSON_ERROR_NONE) {  // 输出响应数据  echo "Code: " . $responseData['code'] . "<br>";  echo "Message: " . $responseData['msg'] . "<br>";  if ($responseData['code'] == 200) { // 200表示成功  $data = $responseData['data'];  echo "查询的号码: " . $data['mobile'] . "<br>";  echo "查询的余额: " . $data['curFee'] . "<br>";  echo "账户剩余余额: " . $data['mobile_fee'] . "<br>";  echo "号码省份: " . $data['province'] . "<br>";  echo "号码地市: " . $data['city'] . "<br>";  echo "最新运营商名称: " . $data['sp'] . "<br>";  echo "原始运营商名称: " . $data['pri_sp'] . "<br>";  } else {  echo "Error: " . $responseData['msg'];  }  } else {  echo 'JSON Decode Error: ' . json_last_error_msg();  }  
}  // 关闭cURL会话  
curl_close($ch);  
?>

下边是html代码
在这里插入图片描述

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>手机号码话费余额查询</title>  <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet">  <!-- <link href="./css/bootstrap.min.css" rel="stylesheet">  --><script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <!-- <script src="./js/jquery-3.5.1.min.js"></script>  --><script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>  <!-- <script src="./js/bootstrap.bundle.min.js"></script>   --><style>  body {  background-color: #f8f9fa;  font-family: 'Arial', sans-serif;  }  .container {  max-width: 600px;  margin: 50px auto;  padding: 20px;  background-color: #ffffff;  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);  border-radius: 8px;  }  .alert {  margin-top: 20px;  }  .result-list {  margin-top: 20px;  }  .n {  width: 100%;margin-top: 20px; }  </style>  
</head>  
<body>  <div class="container mt-5">  <div class="card">  <div class="card-header">  <h3 class="card-title text-center">手机号码话费余额查询</h3>  </div>  <div class="card-body">  <form id="queryForm">  <div class="form-group">  <label for="mobile">手机号码</label>  <input type="text" class="form-control" id="mobile" name="mobile" placeholder="请输入手机号码" required>  </div>  <div class="form-group">  <label for="workType">运营商类别</label>  <select class="form-control" id="workType" name="work_type" required>  <option value=" ">自动识别</option> <option value="移动">移动</option>  <option value="电信">电信</option>  <option value="联通">联通</option>  </select>  </div>  <button type="submit" class="btn btn-primary btn-block n">查询</button>  </form>  <div id="result" class="mt-3">  <h4 class="text-center">查询结果</h4>  <div id="alertContainer" class="mt-3"></div> <ul class="list-group" id="resultList"></ul>  </div>  </div>  </div>  </div>  <script>  $(document).ready(function () {  $('#queryForm').on('submit', function (e) {  e.preventDefault();  var mobile = $('#mobile').val();  var workType = $('#workType').val();  //API文档地址:https://api.taolale.com/doc/13var apiKey = '你的key'; // 请在此处替换为你的API key  var apiUrl = `https://api.taolale.com/api/Inquiry_Phone_Charges/get?key=${apiKey}&mobile=${mobile}&work_type=${workType}`;  // 弹出提示框(加载中...)  var alertDiv = $('<div class="alert alert-info alert-dismissible fade show" role="alert">' +  '<strong>加载中...</strong> 请稍等...' +  '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' +  '</div>');  $('#alertContainer').html(alertDiv);  $.ajax({  url: apiUrl,  method: 'POST',  dataType: 'json',  success: function (response) {  // 关闭加载提示框  $('.alert').alert('close');  if (response.code === 200) {  var resultList = $('#resultList');  resultList.empty();  var data = response.data;  resultList.append(`<li class="list-group-item">手机号码: ${data.mobile}</li>`);  resultList.append(`<li class="list-group-item">当前余额: ${data.curFee} 元</li>`);  resultList.append(`<li class="list-group-item">账户剩余余额: ${data.mobile_fee} 元</li>`);  resultList.append(`<li class="list-group-item">号码省份: ${data.province}</li>`);  resultList.append(`<li class="list-group-item">号码地市: ${data.city}</li>`);  resultList.append(`<li class="list-group-item">最新运营商名称: ${data.sp}</li>`);  resultList.append(`<li class="list-group-item">原始运营商名称: ${data.pri_sp}</li>`);  } else {  // 如果查询失败,则弹出错误提示框  var errorDiv = $('<div class="alert alert-danger alert-dismissible fade show" role="alert">' +  '<strong>查询失败!</strong>' +  '<p>' + response.msg +"   ||  "+ response.data + '</p>' +  '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' +  '</div>');  $('#alertContainer').html(errorDiv);  } },  error: function(xhr, status, error) {  // 如果请求失败,则弹出错误提示框  var errorDiv = $('<div class="alert alert-danger alert-dismissible fade show" role="alert">' +  '<strong>请求失败!</strong>' +  '<p>' + xhr.responseText || '无法连接到服务器,请稍后再试。' + '</p>' +  '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' +  '</div>');  $('#alertContainer').html(errorDiv);  }   });  });  });  </script>  
</body>  
</html>

http://www.ppmy.cn/server/151336.html

相关文章

MySQL--索引(详解)

欢迎大家来到权权的博客~欢迎大家对我的博客进行指导&#xff0c;有什么不对的地方&#xff0c;我会及时改进哦~ 博客主页链接点这里–>&#xff1a;权权的博客主页链接 目录 一、本节目标二、简介2.1索引是什么&#xff1f;2.2为什么要使用索引&#xff1f; 三、索引应该选…

Linux Mail 功能解析

在 Linux 系统中&#xff0c;mail 命令是用于发送、接收和管理电子邮件的一个常见工具。它通常是系统默认安装的一部分&#xff0c;主要用于命令行界面&#xff08;CLI&#xff09;下的邮件操作。以下是关于 Linux 中 mail 命令及其相关功能的详细解析。 1. 基本功能&#xff…

鸿蒙Next数据懒加载LazyForEach用法总结

在鸿蒙Next开发中&#xff0c;LazyForEach提供了高效的数据懒加载机制&#xff0c;适用于处理大量数据的列表展示等场景&#xff0c;可有效提升性能和内存管理。以下是其详细用法总结。 一、使用限制 容器组件要求&#xff1a;必须在特定容器组件&#xff08;List、Grid、Swi…

【PHP小课堂】在PHP中使用Zookeeper

在PHP中使用Zookeeper 不知道大家对于 Zookeeper 的了解有多少&#xff0c;我在实际的项目中没有使用过&#xff0c;但是之前学过一点。因此&#xff0c;今天我们只来看看 PHP 中关于 Zookeeper 的扩展相关函数的使用&#xff0c;不会涉及更加深入的 Zookeeper 相关概念和细节的…

【从零开始入门unity游戏开发之——C#篇12】新的引用类型——数组array

文章目录 一、数组&#xff08;array&#xff09;&#xff08;一维数组&#xff09;1、声明数组2、初始化数组3、访问数组元素4 、修改数组元素5、获取数组的长度6、遍历数组使用 for 循环&#xff1a;使用 foreach 循环&#xff1a; 7、数组方法排序&#xff1a;逆序&#xff…

9 OOM和JVM退出。OOM后JVM一定会退出吗?

首先我们把两个概念讲清楚 OOM是线程在申请堆内存&#xff0c;发现堆内存空间不足时候抛出的异常。 JVM退出的条件如下&#xff1a; java虚拟机在没有守护线程的时候会退出。守护线程是启动JVM的线程&#xff0c;服务于用户线程。 我们简单说下守护线程的功能: 1.日志的记录…

DeepSeek-AI 开源 DeepSeek-VL2 系列,采用专家混合(MoE)架构,重新定义视觉语言人工智能

将视觉与语言的智能融合&#xff0c;已经在视觉语言模型&#xff08;Vision-Language Models&#xff0c;简称VLMs&#xff09;领域实现了重大突破。这些模型致力于同步处理和解释视觉与文本数据&#xff0c;从而使得图像描述、视觉问题回答、光学字符识别&#xff08;Optical …

ChatGPT崩溃引发行业震动:智能化之路需多元发展

今晨&#xff0c;当我如常打开ChatGPT&#xff0c;准备开始一天的工作时&#xff0c;却遭遇了令人措手不及的崩溃。起初&#xff0c;我还天真地以为这只是区域性的网络波动或是账号的小故障&#xff0c;于是费尽心思地清除浏览器缓存、cookies&#xff0c;甚至尝试更换区域设置…