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

news/2024/12/14 15:36: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/news/1555051.html

相关文章

tklog0.2.8—Rust高性能日志库

tklog是rust高性能结构化日志库&#xff0c;支持同步日志&#xff0c;异步日志&#xff0c;支持自定义日志的输出格式&#xff0c;支持按时间&#xff0c;按文件大小分割日志文件&#xff0c;支持日志文件压缩备份&#xff0c;支持官方日志库标准API&#xff0c;支持mod独立参数…

网络原理初识一>网络基本的概念, 网络如何转发

目录&#xff1a; 一.网络基本的概念&#xff1a; 二. 封装和分用 (网络转发)&#xff1a; 一.网络基本的概念&#xff1a; 1..局域网 (LAN)&#xff1a; 局域网&#xff0c;即 Local Area Network&#xff0c;简称LAN。 Local 即标识了局域网是本地&#xff0c;局部组建的…

Golang学习笔记_08——For循环

Golang学习笔记_05——延迟调用 Golang学习笔记_06——变量和常量 Golang学习笔记_07——基本类型 文章目录 For循环1. 基本形式2. 省略形式3. While循环4. 无限循环5. 使用 range 进行迭代 源码 For循环 在Go语言中&#xff0c;for 循环是唯一的一种循环结构&#xff0c;它非…

chattts生成的音频与字幕修改完善,每段字幕对应不同颜色的视频,准备下一步插入视频。

上一节中&#xff0c;实现了先生成一个固定背景的与音频长度一致的视频&#xff0c;然后插入字幕。再合并成一个视频的方法。 但是&#xff1a;这样有点单了&#xff0c;所以&#xff1a; 1.根据字幕的长度先生成视频片断 2.在片段上加上字幕。 3.合并所有片断&#xff0c;…

.NET(C#) 如何配置用户首选项及保存用户设置

最近开发软件&#xff0c;需要将用户设置保存下来以便下次打开后再用&#xff0c;看了半天原来.NET框架自带setting功能。记录如下&#xff1a; 一&#xff0c;“设置” 页面 使用项目设计器的“设置”页指定项目的应用程序设置。 通过应用程序设置&#xff0c;能够为应用程序…

如何切换安卓手机ip?你更喜欢哪种操作

在数字化时代&#xff0c;IP地址作为网络设备的唯一标识&#xff0c;对于网络访问和隐私保护至关重要。有时&#xff0c;可能出于个人需求或工作缘故&#xff0c;想要将自己的安卓手机IP地址更换成其他省份的&#xff0c;或者设置成静态IP等需求该如何实现呢&#xff1f;安卓手…

通信协议 http、tcp、udp

目录 1. 五层网络协议 2. http 3. tcp、udp 4. tcp 3次握手、4次挥手 5. socket 6. httpclient 遇到的问题 1. Q: 使用 EntityUtils.toString(responseEntity, "UTF-8") 中文乱码 2. Q: org.apache.http.NoHttpResponseException: 221.6.16.203:8890 failed …

深入探索数据库世界:SQLite、Redis、MySQL 与数据库设计范式

数据库 深入探索数据库世界:SQLite、Redis、MySQL 与数据库设计范式一、SQLite 数据库全方位解析(一)创建与基本操作(二)数据存储与表结构设计(三)数据操作:增删改查(四)与 C 语言联合使用(五)防止 SQL 注入二、Redis 数据库深度剖析(一)数据存储类型与独特结构(…