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

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/13
                var 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>
相关推荐
范文杰3 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪3 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪3 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy4 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom5 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom5 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom5 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom5 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom5 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试
LaoZhangAI6 小时前
2025最全GPT-4o图像生成API指南:官方接口配置+15个实用提示词【保姆级教程】
前端