99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

無(wú)需驗(yàn)證碼的話費(fèi)余額查詢HTML源碼+接口接入實(shí)戰(zhàn)教程

無(wú)需驗(yàn)證碼的話費(fèi)余額查詢HTML源碼+接口接入實(shí)戰(zhàn)教程 簡(jiǎn)介移動(dòng)、電信、聯(lián)通話費(fèi)余額查詢網(wǎng)頁(yè)源碼及配套接口面向需要快速接入話費(fèi)查詢能力的前端開發(fā)者或個(gè)人站點(diǎn)運(yùn)營(yíng)者。頁(yè)面無(wú)需驗(yàn)證碼即可實(shí)時(shí)查詢并能自動(dòng)識(shí)別國(guó)內(nèi)三大運(yùn)營(yíng)商號(hào)碼若遇攜號(hào)轉(zhuǎn)網(wǎng)號(hào)碼支持手動(dòng)選擇歸屬運(yùn)營(yíng)商避免誤判。壓縮包內(nèi)共包含六個(gè)文件一個(gè)網(wǎng)頁(yè)文件承載查詢界面一個(gè)樣式文件控制頁(yè)面外觀兩個(gè)腳本文件支撐頁(yè)面交互、運(yùn)營(yíng)商識(shí)別及接口請(qǐng)求兩張圖片用于界面裝飾整包僅一百三十三KB結(jié)構(gòu)緊湊、易于二次修改。當(dāng)前已有六百零八人學(xué)習(xí)下載適合希望低成本上線話費(fèi)查詢功能或?qū)W習(xí)接口調(diào)用流程的用戶。拿到后只需將源碼中的密鑰替換為自己注冊(cè)的密鑰即可使用平臺(tái)贈(zèng)送五次查詢額度便于測(cè)試不熟悉替換操作的用戶可結(jié)合頁(yè)面內(nèi)注釋和接口提示快速上手。1. 手機(jī)話費(fèi)余額查詢?yōu)槭裁粗档米约捍钜惶鬃鲞@行的朋友應(yīng)該都有印象移動(dòng)、電信、聯(lián)通三家的話費(fèi)余額查詢官方App、公眾號(hào)、短信里都能做但那都是給最終用戶用的。一旦你手里有幾十張卡、要批量對(duì)賬、要做營(yíng)業(yè)廳自助終端、或者做話費(fèi)充值分銷系統(tǒng)再讓人工一個(gè)個(gè)點(diǎn)App就太蠢了。這時(shí)候就需要一套能嵌入你自己系統(tǒng)的「話費(fèi)余額查詢HTML源碼接口」。這套東西的本質(zhì)是把運(yùn)營(yíng)商的余額查詢能力封裝成一個(gè)HTTP接口前端用HTML頁(yè)面調(diào)用用戶在頁(yè)面上輸一個(gè)手機(jī)號(hào)就能拿到實(shí)時(shí)余額。標(biāo)題里強(qiáng)調(diào)的「無(wú)需驗(yàn)證碼」實(shí)際指的是接入方在自建頁(yè)面里不需要處理圖形驗(yàn)證碼或短信驗(yàn)證碼——身份驗(yàn)證的這一步由接口通道方在服務(wù)端完成你的頁(yè)面拿到的是可用的查詢結(jié)果。它適合三類人做營(yíng)業(yè)廳/代理點(diǎn)自助查詢屏的集成商、做話費(fèi)充值或分銷系統(tǒng)的開發(fā)者、以及手里有批量號(hào)碼需要定時(shí)對(duì)賬的運(yùn)維人員。這篇文章就是把我在這個(gè)方向上踩過(guò)的坑和驗(yàn)證過(guò)的做法完整講一遍接口從哪來(lái)、HTML怎么搭、參數(shù)怎么定、哪些地方最容易翻車、最后怎么驗(yàn)證數(shù)據(jù)準(zhǔn)不準(zhǔn)。不吹能免費(fèi)拿到官方接口但能讓你在現(xiàn)有通道基礎(chǔ)上十分鐘內(nèi)跑起來(lái)一套能用的查詢頁(yè)。2. 話費(fèi)余額查詢的技術(shù)鏈路先搞清楚查詢請(qǐng)求是怎么走通的2.1 三大運(yùn)營(yíng)商的余額查詢通道到底有哪幾條在動(dòng)手寫HTML之前先把接口這層摸清楚。目前業(yè)內(nèi)做話費(fèi)余額查詢通道無(wú)非四類每類的門檻、穩(wěn)定性和數(shù)據(jù)延遲差別很大。第一類是運(yùn)營(yíng)商官方開放平臺(tái)。移動(dòng)有「移動(dòng)云」能力平臺(tái)電信有「天翼開放平臺(tái)」聯(lián)通有「沃云能力開放平臺(tái)」它們都提供話費(fèi)查詢類API但申請(qǐng)需要企業(yè)資質(zhì)、簽約、審核往往還要預(yù)付費(fèi)個(gè)人開發(fā)者基本走不通。這一類的優(yōu)勢(shì)是數(shù)據(jù)最權(quán)威、沒有合規(guī)風(fēng)險(xiǎn)缺點(diǎn)是流程長(zhǎng)、門檻高。第二類是運(yùn)營(yíng)商政企接口的間接代理。很多做話費(fèi)充值的SP服務(wù)商把政企通道二次封裝成HTTP接口對(duì)外出售按次計(jì)費(fèi)。這一類是市面上所謂「話費(fèi)余額查詢API」的主流來(lái)源價(jià)格從幾分錢到幾毛錢一次都有。你傳手機(jī)號(hào)和查詢類型它返回余額、可用余額、狀態(tài)等信息。穩(wěn)定性取決于上游通道有的通道在月底月初賬期會(huì)波動(dòng)。第三類是模擬協(xié)議方式。也就是模擬手機(jī)App或短信網(wǎng)關(guān)的交互流程抓包拿到登錄態(tài)再請(qǐng)求余額查詢的內(nèi)部接口。這種方式成本最低、不需要買通道但屬于灰色操作——協(xié)議一改就失效號(hào)多了容易被封而且涉及賬號(hào)安全和數(shù)據(jù)合規(guī)問(wèn)題。我不建議任何人把生產(chǎn)依賴建在這種通道上。第四類是自己對(duì)接運(yùn)營(yíng)商短信或語(yǔ)音回?fù)堋0l(fā)一條短信到指定號(hào)碼或者撥一個(gè)號(hào)碼然后解析返回的余額短信。這個(gè)延遲高、解析容錯(cuò)差只適合極低頻率的兜底場(chǎng)景。我一般建議如果只是自己內(nèi)部用、量不大直接買第三方的HTTP查詢接口如果要做成產(chǎn)品對(duì)外服務(wù)就去申請(qǐng)官方開放平臺(tái)或者找有正規(guī)授權(quán)的SP服務(wù)商簽通道合同?!笩o(wú)需驗(yàn)證碼」這個(gè)賣點(diǎn)在第三方通道和官方API里都成立因?yàn)槟隳玫降氖欠?wù)端已經(jīng)完成鑒權(quán)的查詢能力。別自己寫一個(gè)繞過(guò)驗(yàn)證碼的腳本那不是技術(shù)問(wèn)題是安全問(wèn)題。2.2 接口請(qǐng)求與返回的數(shù)據(jù)結(jié)構(gòu)以一次真實(shí)查詢?yōu)槔秊榱撕竺鍴TML能直接接上這里給出一份典型的第三方話費(fèi)余額查詢接口約定。不同服務(wù)商的字段名多少有差異但核心結(jié)構(gòu)基本一致我這里列的是最常見的一種形態(tài)。請(qǐng)求方式為POSTContent-Type為application/json接口路徑示例為/api/v1/balance/query。請(qǐng)求體{ app_id: 100023, app_secret: 你的密鑰, mobile: 13800138000, timestamp: 1735689600, sign: md5(mobile app_secret timestamp) }參數(shù)說(shuō)明app_id是服務(wù)商分配的應(yīng)用編號(hào)app_secret是簽名密鑰。timestamp用Unix時(shí)間戳sign是把mobile、app_secret、timestamp三個(gè)字符串按順序拼接后做MD5得到的32位十六進(jìn)制字符串。服務(wù)商那邊會(huì)用同樣的算法校驗(yàn)簽名防止請(qǐng)求被篡改。這里有個(gè)細(xì)節(jié)很容易忽略拼接順序必須跟服務(wù)商文檔完全一致有的還要求把a(bǔ)pp_id也拼進(jìn)去多一個(gè)少一個(gè)都會(huì)報(bào)簽名錯(cuò)誤。我在對(duì)接第一個(gè)服務(wù)商時(shí)就是因?yàn)闆]看文檔里「按ASCII碼排序后再拼接」這句話調(diào)了一下午沒調(diào)通。正常返回的結(jié)果是JSON{ code: 0, msg: success, data: { mobile: 13800138000, carrier: 中國(guó)移動(dòng), province: 廣東, balance: 86.50, usable_balance: 86.50, status: normal, query_time: 2026-01-01 10:22:31 } }balance是話費(fèi)余額單位是元服務(wù)商一般返回字符串類型避免前端把大數(shù)變成科學(xué)計(jì)數(shù)法。usable_balance是可用余額有的套餐有??顚S玫挠囝~這倆數(shù)值會(huì)不一致。status是號(hào)碼狀態(tài)normal代表正常在用其他常見的還有shutdown停機(jī)、suspend欠費(fèi)停機(jī)、not_exist號(hào)碼不存在。2.3 前端頁(yè)面的調(diào)用策略后端中轉(zhuǎn)還是直連頁(yè)面要調(diào)這個(gè)接口有兩種接線方式。第一種是HTML直接AJAX請(qǐng)求第三方接口簡(jiǎn)單粗暴但app_secret暴露在前端代碼里任何人打開F12就能把你的密鑰拿走而且第三方接口一般配了跨域限制你直接在瀏覽器里調(diào)大概率會(huì)被CORS攔下來(lái)。第二種是后端中轉(zhuǎn)——你的服務(wù)器上跑一個(gè)代理接口HTML頁(yè)面請(qǐng)求你自己的后端后端再拿著app_secret去請(qǐng)求第三方。密鑰永遠(yuǎn)不出服務(wù)器也天然繞開了跨域問(wèn)題。我采用的一直是第二種。HTML頁(yè)面里只配置后端地址不出現(xiàn)任何密鑰。后端用Flask、Node.js、PHP都行對(duì)查詢量小的場(chǎng)景來(lái)說(shuō)差別不大。如果是對(duì)接官方運(yùn)營(yíng)商API那更是必須后端中轉(zhuǎn)——官方接口的簽名算法、token刷新邏輯放前端根本沒法保證安全。3. 用HTML把查詢頁(yè)搭起來(lái)頁(yè)面代碼與參數(shù)說(shuō)明3.1 一個(gè)夠用的話費(fèi)余額查詢頁(yè)完整HTML代碼這一節(jié)直接給出一份可以在本地打開就用的HTML頁(yè)面。它的職責(zé)很單一接收手機(jī)號(hào)輸入請(qǐng)求后端接口展示返回的余額信息。樣式做成了適合自助查詢終端的大字體版本營(yíng)業(yè)廳或代理點(diǎn)用起來(lái)比較順手。!doctype html html langzh-cn head meta charsetutf-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title話費(fèi)余額查詢終端/title style * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: PingFang SC, Microsoft YaHei, sans-serif; background: #f0f2f5; display: flex; justify-content: center; align-items: center; min-height: 100vh; } .card { background: #ffffff; border-radius: 16px; padding: 48px; width: 420px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); } .card h1 { font-size: 24px; margin-bottom: 8px; text-align: center; } .card .subtitle { color: #888; font-size: 14px; text-align: center; margin-bottom: 32px; } .input-row { display: flex; gap: 8px; margin-bottom: 16px; } .input-row input { flex: 1; height: 48px; border: 1px solid #d9d9d9; border-radius: 8px; padding: 0 16px; font-size: 18px; letter-spacing: 1px; outline: none; } .input-row input:focus { border-color: #1677ff; } .btn { height: 48px; padding: 0 24px; background: #1677ff; color: #ffffff; border: none; border-radius: 8px; font-size: 16px; cursor: pointer; } .btn:disabled { background: #a0c4ff; cursor: not-allowed; } .result { margin-top: 24px; padding: 24px; background: #f8f9fa; border-radius: 8px; font-size: 16px; line-height: 1.8; display: none; } .result .balance { font-size: 36px; font-weight: 700; color: #1677ff; } .result.visible { display: block; } .error { color: #cf1322; margin-top: 12px; font-size: 14px; display: none; } /style /head body div classcard h1話費(fèi)余額查詢/h1 p classsubtitle移動(dòng) / 電信 / 聯(lián)通/p div classinput-row input typetext idmobileInput maxlength11 placeholder請(qǐng)輸入11位手機(jī)號(hào) inputmodenumeric button classbtn idqueryBtn查詢/button /div div classerror iderrorBox/div div classresult idresultBox div運(yùn)營(yíng)商span idcarrier/span/div div歸屬地span idprovince/span/div div當(dāng)前余額span classbalance idbalance/span 元/div div可用余額span idusableBalance/span 元/div div號(hào)碼狀態(tài)span idstatusText/span/div /div /div script const queryBtn document.getElementById(queryBtn); const mobileInput document.getElementById(mobileInput); const errorBox document.getElementById(errorBox); const resultBox document.getElementById(resultBox); // 手機(jī)號(hào)格式校驗(yàn)1開頭 10位數(shù)字 function isValidMobile(mobile) { return /^1\d{10}$/.test(mobile); } queryBtn.addEventListener(click, async function () { const mobile mobileInput.value.trim(); errorBox.style.display none; resultBox.classList.remove(visible); if (!isValidMobile(mobile)) { errorBox.textContent 請(qǐng)輸入正確的11位手機(jī)號(hào); errorBox.style.display block; return; } queryBtn.disabled true; queryBtn.textContent 查詢中...; try { const resp await fetch(/api/query, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ mobile: mobile }) }); if (!resp.ok) { throw new Error(接口服務(wù)異常請(qǐng)稍后重試); } const data await resp.json(); if (data.code ! 0) { throw new Error(data.msg || 查詢失敗); } document.getElementById(carrier).textContent data.data.carrier; document.getElementById(province).textContent data.data.province; document.getElementById(balance).textContent data.data.balance; document.getElementById(usableBalance).textContent data.data.usable_balance; const statusMap { normal: 正常, shutdown: 停機(jī), suspend: 欠費(fèi)停機(jī), not_exist: 號(hào)碼不存在 }; document.getElementById(statusText).textContent statusMap[data.data.status] || data.data.status; resultBox.classList.add(visible); } catch (err) { errorBox.textContent err.message || 網(wǎng)絡(luò)異常; errorBox.style.display block; } finally { queryBtn.disabled false; queryBtn.textContent 查詢; } }); /script /body /html代碼邏輯分三段首先是樣式用了大號(hào)輸入框和高對(duì)比度按鈕適配觸摸屏然后是HTML結(jié)構(gòu)輸入框限定了maxlength11并且設(shè)置inputmodenumeric在自助終端上會(huì)彈出數(shù)字鍵盤最后是JavaScript部分做了前端手機(jī)號(hào)格式校驗(yàn)、fetch異步請(qǐng)求、結(jié)果渲染和錯(cuò)誤分支。這里有一個(gè)值得注意的設(shè)計(jì)fetch請(qǐng)求的是相對(duì)路徑/api/query也就是說(shuō)這個(gè)HTML文件需要放在你的后端服務(wù)目錄下由后端同一個(gè)域名提供服務(wù)前端代碼里不出現(xiàn)第三方接口地址也不出現(xiàn)任何密鑰。如果你要快速測(cè)試也想臨時(shí)繞過(guò)Nginx和CORS可以把fetch地址改成后端服務(wù)器的IP加端口但生產(chǎn)環(huán)境不建議這么干。查詢按鈕在請(qǐng)求期間置灰防止重復(fù)點(diǎn)擊導(dǎo)致同一號(hào)碼并發(fā)請(qǐng)求——搞不好觸發(fā)服務(wù)商那邊的頻率限制。3.2 手機(jī)號(hào)校驗(yàn)、運(yùn)營(yíng)商識(shí)別與參數(shù)細(xì)節(jié)上面HTML里已經(jīng)寫了/^1\d{10}$/這個(gè)正則它只做最基礎(chǔ)的格式驗(yàn)證。但你馬上會(huì)碰到一個(gè)實(shí)際問(wèn)題用戶輸了一個(gè)號(hào)碼到底是移動(dòng)、電信還是聯(lián)通這個(gè)信息在查詢結(jié)果里會(huì)有但如果你要在查詢之前就給用戶一個(gè)反饋——比如輸入框下方實(shí)時(shí)顯示「中國(guó)移動(dòng)」——就需要前端先做號(hào)段判斷。三大運(yùn)營(yíng)商的號(hào)段是動(dòng)態(tài)更新的但常用規(guī)則可以這樣寫移動(dòng)以134、135、136、137、138、139、147、148、150、151、152、157、158、159、165、172、178、182、183、184、187、188、198開頭電信以133、149、153、173、177、180、181、189、190、191、199開頭聯(lián)通以130、131、132、145、146、155、156、166、167、171、175、176、185、186、196開頭。注意號(hào)段規(guī)則會(huì)過(guò)時(shí)。前幾年166還是聯(lián)通新號(hào)段現(xiàn)在虛擬運(yùn)營(yíng)商用170、171開頭的一大堆還可能跨網(wǎng)。我的建議是把號(hào)段判斷做成一個(gè)單獨(dú)的JS配置對(duì)象后端接口也返回carrier字段用于和前端判斷結(jié)果互相印證。前端判斷只做展示性提示一切以接口返回為準(zhǔn)。請(qǐng)求參數(shù)方面對(duì)接第三方接口時(shí)需要確認(rèn)三個(gè)關(guān)鍵參數(shù)need_detail要不要話費(fèi)明細(xì)、timeout上游超時(shí)時(shí)間一般建議設(shè)10秒以上、retry_count連續(xù)失敗的重試次數(shù)生產(chǎn)環(huán)境建議0寧可報(bào)錯(cuò)不要重試避免重復(fù)扣費(fèi)。在開發(fā)聯(lián)調(diào)階段把超時(shí)設(shè)短一點(diǎn)比如3秒快速暴露網(wǎng)絡(luò)問(wèn)題上線后調(diào)長(zhǎng)到10秒因?yàn)榈谌缴嫌斡袝r(shí)候在賬期確實(shí)慢。4. 接口中轉(zhuǎn)層怎么實(shí)現(xiàn)Flask示例與接入配置4.1 用Flask做接口中轉(zhuǎn)一份可直接改的代碼HTML頁(yè)面寫得再好沒有后端中轉(zhuǎn)層就是空殼。下面是用Python Flask實(shí)現(xiàn)的一個(gè)最小中轉(zhuǎn)服務(wù)職責(zé)是把前端的余額查詢請(qǐng)求轉(zhuǎn)發(fā)給第三方接口并做基本的異常兜底。這份代碼我可沒做任何封裝和花哨處理它就是最樸素的寫法方便你看懂每一行在干什么。import hashlib import time import requests from flask import Flask, request, jsonify app Flask(__name__) # 第三方接口配置請(qǐng)?zhí)鎿Q為實(shí)際值 API_URL https://your-provider.example.com/api/v1/balance/query APP_ID 100023 APP_SECRET your-secret-here # 用于記錄最近查詢時(shí)間簡(jiǎn)單防抖 _last_query_time {} def make_sign(mobile: str, timestamp: int) - str: 按服務(wù)商要求拼接并做MD5簽名 raw f{mobile}{APP_SECRET}{timestamp} return hashlib.md5(raw.encode(utf-8)).hexdigest() app.route(/api/query, methods[POST]) def query_balance(): data request.get_json(silentTrue) or {} mobile data.get(mobile, ).strip() if not mobile or len(mobile) ! 11 or not mobile.isdigit(): return jsonify({code: 1, msg: 手機(jī)號(hào)格式不正確}) # 控制同一號(hào)碼的查詢頻率至少間隔2秒 now time.time() if mobile in _last_query_time: if now - _last_query_time[mobile] 2: return jsonify({code: 1, msg: 查詢太頻繁請(qǐng)稍后再試}) _last_query_time[mobile] now timestamp int(time.time()) payload { app_id: APP_ID, mobile: mobile, timestamp: timestamp, sign: make_sign(mobile, timestamp), } try: resp requests.post(API_URL, jsonpayload, timeout10) data resp.json() except requests.exceptions.Timeout: return jsonify({code: 1, msg: 上游接口超時(shí)請(qǐng)稍后重試}) except requests.exceptions.RequestException as e: return jsonify({code: 1, msg: f上游接口異常: {type(e).__name__}}) except ValueError: return jsonify({code: 1, msg: 上游返回非JSON數(shù)據(jù)}) # 透?jìng)魃嫌谓Y(jié)果給前端 if data.get(code) 0: return jsonify({code: 0, data: data.get(data, {})}) else: return jsonify({code: 1, msg: data.get(msg, 查詢失敗)}) if __name__ __main__: app.run(host0.0.0.0, port8000)這份代碼里有幾個(gè)點(diǎn)值得展開說(shuō)。make_sign函數(shù)里raw的拼接順序是mobile APP_SECRET timestamp這個(gè)順序是我前面在接口約定里給的示例但你在真實(shí)對(duì)接時(shí)必須以服務(wù)商文檔為準(zhǔn)。有些服務(wù)商要求先做ASCII排序有些要求時(shí)間戳用毫秒級(jí)還有的會(huì)在簽名串里加一個(gè)隨機(jī)nonce防重放。這些都會(huì)導(dǎo)致同一個(gè)網(wǎng)站的不同接口簽名邏輯完全不同。_last_query_time是一個(gè)進(jìn)程內(nèi)字典用來(lái)做同號(hào)碼的查詢頻率限制。注意這個(gè)方案只在單進(jìn)程、單機(jī)部署時(shí)有效如果你上了多進(jìn)程或負(fù)載均衡就得換成Redis來(lái)做頻率控制。防抖的核心是防止同一個(gè)號(hào)碼因?yàn)榍岸诉B點(diǎn)、重試等操作在短時(shí)間內(nèi)打太多請(qǐng)求——賬單期第三方的余額查詢接口經(jīng)常按次計(jì)費(fèi)一次多余請(qǐng)求就是一次成本。requests.post設(shè)置了timeout10這是連接和讀取的總超時(shí)。如果設(shè)為(3, 10)則分別代表連接超時(shí)3秒、讀取超時(shí)10秒更細(xì)粒度但可讀性差一些。捕獲異常時(shí)我區(qū)分了Timeout和RequestException因?yàn)槌瑫r(shí)對(duì)用戶來(lái)說(shuō)是可以重試的而連接錯(cuò)誤通常意味著你的服務(wù)器到服務(wù)商通道的網(wǎng)絡(luò)路徑有問(wèn)題重試大概率還是失敗。4.2 密鑰管理、日志與部署生產(chǎn)環(huán)境不能省的三件事上面那段代碼如果直接部署上線有三個(gè)隱患密鑰硬編碼在源碼里、沒有日志、單進(jìn)程app.run扛不住并發(fā)。我一般會(huì)在生產(chǎn)環(huán)境做三件補(bǔ)充。密鑰管理最常見的是放到環(huán)境變量或者單獨(dú)的config.ini文件里文件不提交進(jìn)Git倉(cāng)庫(kù)。Flask里讀取環(huán)境變量用os.environ.get(APP_SECRET)部署時(shí)由Nginx或systemd注入。這樣即使代碼倉(cāng)庫(kù)泄露密鑰也不會(huì)跟著漏。日志記錄不能只依賴print。用Python標(biāo)準(zhǔn)庫(kù)logging配置一個(gè)RotatingFileHandler把每次請(qǐng)求的手機(jī)號(hào)可以脫敏成138****8000、是否成功、耗時(shí)、上游返回碼記錄下來(lái)。出了話費(fèi)對(duì)不上的糾紛時(shí)這份日志就是唯一能回溯的證據(jù)。注意手機(jī)號(hào)屬于個(gè)人信息日志落盤前建議脫敏。部署層面Flask自帶的服務(wù)只適合開發(fā)聯(lián)調(diào)生產(chǎn)上用gunicorn -w 2 -b 0.0.0.0:8000 app:app起多worker前面再掛Nginx做靜態(tài)文件服務(wù)和反向代理。這里的HTML文件放在Nginx的root目錄下/api/query路徑反向代理到Gunicorn的8000端口。這樣一個(gè)典型的部署架構(gòu)就閉環(huán)了。為什么強(qiáng)調(diào)這個(gè)鏈路因?yàn)闃?biāo)題里的「無(wú)需驗(yàn)證碼」在生產(chǎn)和開發(fā)環(huán)境完全是兩層體驗(yàn)。開發(fā)時(shí)你本地起個(gè)FlaskHTML直接雙擊打開也能訪問(wèn)http://localhost:8000/api/query——如果你把fetch地址硬編碼成了http://localhost:8000的話。生產(chǎn)環(huán)境必須同域名、同端口訪問(wèn)否則瀏覽器會(huì)以CORS為由攔截請(qǐng)求控制臺(tái)里報(bào)錯(cuò)一片紅很勸退。5. 接入話費(fèi)余額查詢的避坑手冊(cè)現(xiàn)象、原因與解決5.1 坑一接口返回成功但余額字段永遠(yuǎn)是0或者空這個(gè)坑我見過(guò)太多次了。現(xiàn)象是code返回0msg是success但data.balance是空字符串或者永遠(yuǎn)是0.00。原因通常有兩個(gè)。第一個(gè)原因是號(hào)碼狀態(tài)不是normal——停機(jī)、欠費(fèi)、或者號(hào)碼已銷戶很多第三方通道對(duì)非正常狀態(tài)的號(hào)碼不返回余額只返回狀態(tài)碼。這時(shí)候前端不能只看code字段要同時(shí)判斷status字段。第二個(gè)原因是部分通道的歷史余額查詢需要額外的type參數(shù)比如type1表示「實(shí)時(shí)余額」type2表示「上月賬單」。不傳這個(gè)參數(shù)接口就返回一個(gè)默認(rèn)值。解決方法是在聯(lián)調(diào)階段先拿一個(gè)自己正在用的、確定正常的號(hào)碼測(cè)試如果還是空就把上游返回的原始JSON完整打出來(lái)看不要只看接口文檔里給的字段列表。很多時(shí)候文檔寫的是balance實(shí)際返回的是bal或者amount少一個(gè)映射字段就白折騰一場(chǎng)。5.2 坑二凌晨1點(diǎn)到2點(diǎn)查詢大面積報(bào)錯(cuò)或超時(shí)現(xiàn)象白天怎么查都正常一到深夜就時(shí)不時(shí)超時(shí)、返回code-1之類的錯(cuò)誤碼。原因很反直覺——不是服務(wù)商系統(tǒng)在睡覺而是運(yùn)營(yíng)商在凌晨做賬期批處理余額查詢通道的數(shù)據(jù)源在這個(gè)時(shí)間窗口內(nèi)不穩(wěn)定。尤其是月底最后一天晚上到次月1日凌晨出賬、批扣、話費(fèi)結(jié)轉(zhuǎn)都在跑查詢接口的響應(yīng)時(shí)間可能從幾百毫秒飆到幾十秒。解決思路不要試圖靠調(diào)大超時(shí)來(lái)硬扛。正確的做法是在業(yè)務(wù)層做「賬期保護(hù)」比如每月1日0點(diǎn)到6點(diǎn)自動(dòng)把查詢頁(yè)切換成維護(hù)提醒模式或者把定時(shí)對(duì)賬任務(wù)錯(cuò)開到凌晨6點(diǎn)以后。如果你做的是自助終端這種面向用戶的場(chǎng)景凌晨本來(lái)就沒什么人查詢直接展示「系統(tǒng)維護(hù)中」比等一個(gè)超時(shí)再報(bào)錯(cuò)要體面得多。5.3 坑三批量查詢時(shí)同一號(hào)碼被限流導(dǎo)致后面的號(hào)碼全部失敗現(xiàn)象循環(huán)查100個(gè)號(hào)碼前30個(gè)成功第31個(gè)開始全部返回too many requests。原因第三方通道按app_id維度做了QPS限制常見的配額是1QPS或5QPS你一個(gè)for循環(huán)打過(guò)去瞬間就頂穿配額了。解決一是加本地限速每次請(qǐng)求之間至少間隔200毫秒到1秒具體看服務(wù)商給的比例因子每個(gè)app_id對(duì)應(yīng)的每秒配額。二是利用接口返回里帶的retry_after字段做退避。三是把批量查詢改成串行失敗重試隊(duì)列。我在自己的批量對(duì)賬腳本里用了一個(gè)簡(jiǎn)單到不好意思說(shuō)的辦法time.sleep(0.5)效果立竿見影100個(gè)號(hào)碼查完也就多等了一分鐘。5.4 坑四返回的歸屬地和號(hào)段判斷結(jié)果不一致現(xiàn)象一個(gè)188開頭的號(hào)碼號(hào)段表里查是移動(dòng)接口返回的carrier也是移動(dòng)但province歸屬地跟用戶身份證所在地不一致。原因現(xiàn)在攜號(hào)轉(zhuǎn)網(wǎng)已經(jīng)很普遍188號(hào)段的號(hào)碼可能已經(jīng)轉(zhuǎn)到聯(lián)通而歸屬地是號(hào)碼開戶時(shí)的地區(qū)跟用戶當(dāng)前所在地沒有關(guān)系。接口返回的carrier是當(dāng)前實(shí)際運(yùn)營(yíng)商province是開戶歸屬地這兩者可以不一致。解決不要在頁(yè)面上展示「歸屬地」這種可能引發(fā)歧義的字段或者標(biāo)注清楚「號(hào)碼歸屬地」而非「用戶所在地」。如果你的業(yè)務(wù)需要按運(yùn)營(yíng)商分流、判斷充值渠道一律以接口返回的carrier為準(zhǔn)不要自己用號(hào)段表猜。5.5 坑五簽名總是校驗(yàn)失敗但代碼看起來(lái)和文檔完全一樣這個(gè)坑說(shuō)玄學(xué)也玄學(xué)說(shuō)技術(shù)也技術(shù)?,F(xiàn)象簽名算法逐字符核對(duì)過(guò)文檔拼接順序沒錯(cuò)、密鑰沒錯(cuò)、MD5也轉(zhuǎn)成了十六進(jìn)制小寫但服務(wù)商死活報(bào)簽名錯(cuò)誤。原因通常有三個(gè)一是時(shí)間戳不同步——你的服務(wù)器時(shí)間跟服務(wù)商服務(wù)器差了幾分鐘或者服務(wù)商要求的是毫秒時(shí)間戳你傳了秒二是密鑰里有隱藏字符——從郵件復(fù)制粘貼時(shí)帶上了換行或空格三是服務(wù)商文檔里的MD5要求32位大寫你輸出的是小寫。解決把raw字符串和生成的sign打出來(lái)自己寫個(gè)腳本用同樣的輸入算一遍對(duì)比。再不行用repr()打印密鑰檢查有沒有\(zhòng)n或空格。這個(gè)方法救過(guò)我很多次所謂「玄學(xué)」大多數(shù)是肉眼看不見的字符在作怪。6. 進(jìn)階用法批量查詢定時(shí)任務(wù)與余額數(shù)據(jù)校驗(yàn)場(chǎng)景推進(jìn)到這一步你已經(jīng)有一個(gè)能用的單號(hào)查詢頁(yè)面了。但實(shí)際工作中更常見的訴求是「每天早上9點(diǎn)把公司100張員工卡的話費(fèi)余額跑一遍低于20元的自動(dòng)通知到群里」。這就是從單次查詢向定時(shí)批量查詢的進(jìn)階。實(shí)現(xiàn)方式不復(fù)雜寫一個(gè)Python腳本讀取號(hào)碼清單CSV或數(shù)據(jù)庫(kù)表逐條調(diào)用中轉(zhuǎn)接口查詢把結(jié)果更新回?cái)?shù)據(jù)庫(kù)余額低于閾值的號(hào)碼匯總進(jìn)一個(gè)列表通過(guò)企業(yè)微信機(jī)器人或釘釘機(jī)器人推送到群里。格式大致是這樣import time import requests import csv API_ENDPOINT http://localhost:8000/api/query def load_mobiles(csv_path): with open(csv_path, r, encodingutf-8) as f: reader csv.reader(f) return [row[0] for row in reader if row and row[0].isdigit()] def check_balances(mobiles): low_balance [] for mobile in mobiles: resp requests.post(API_ENDPOINT, json{mobile: mobile}, timeout10) data resp.json() if data[code] 0: balance float(data[data][balance]) if balance 20: low_balance.append((mobile, balance)) time.sleep(0.5) # 限速避免觸發(fā)服務(wù)商QPS限制 return low_balance if __name__ __main__: mobiles load_mobiles(mobiles.csv) result check_balances(mobiles) for mobile, balance in result: print(f低余額提醒: {mobile} 當(dāng)前余額 {balance} 元)這個(gè)腳本里有兩個(gè)值得說(shuō)的點(diǎn)。time.sleep(0.5)是批量任務(wù)里最容易被刪掉、但刪掉就會(huì)出事的代碼——它保護(hù)的是你賬單期不會(huì)被限流打爆。float(data[data][balance])轉(zhuǎn)換時(shí)要注意上游如果返回了86.50這種字符串Python的float()直接能轉(zhuǎn)但如果返回了--或者空字符串轉(zhuǎn)換會(huì)拋異常所以生產(chǎn)腳本里得加異常兜底。數(shù)據(jù)校驗(yàn)這塊很多人忽略。第三方通道的余額數(shù)據(jù)偶爾會(huì)有延遲尤其剛充值完立刻查余額可能還是充值前的值。我養(yǎng)成的習(xí)慣是關(guān)鍵號(hào)碼充值后不要馬上查等5到10分鐘再校驗(yàn)批量對(duì)賬時(shí)如果發(fā)現(xiàn)某個(gè)號(hào)碼余額與上一天記錄差額超過(guò)100元就標(biāo)記為異常待人工核查不直接采信當(dāng)次數(shù)值。最后說(shuō)一個(gè)教訓(xùn)任何話費(fèi)余額查詢通道都有掛掉的可能性永遠(yuǎn)不要把自己的業(yè)務(wù)邏輯寫成「查不到就報(bào)錯(cuò)拉倒」。我在生產(chǎn)系統(tǒng)里維護(hù)了一個(gè)「上次成功查詢結(jié)果」的緩存表接口連續(xù)失敗超過(guò)3次時(shí)自動(dòng)切換為返回緩存數(shù)據(jù)并明確標(biāo)注「數(shù)據(jù)時(shí)間不是實(shí)時(shí)」。對(duì)用戶來(lái)說(shuō)一個(gè)半小時(shí)前的準(zhǔn)確余額比一個(gè)實(shí)時(shí)但查不到的頁(yè)面要實(shí)用得多。這也是整個(gè)方案里我認(rèn)為最值得做的一個(gè)設(shè)計(jì)。希望幫你把這條路走得順一點(diǎn)少交一些我交過(guò)的學(xué)費(fèi)。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
第六色在线| 婷婷综合网站| 米奇影视资源婷婷狠狠色激情欧美五月丁香| 夜夜躁爽日日| 色婷婷五月天av在线| 丁香五月天资源网| 亚城区在线| 久久丁香网| 久久婷婷五月草视频| 影音先锋 萱萱| 久久婷婷五月天激情| 国产AV一区二区三区最新精品| 五月丁香综合啪啪啪啪啪| 少妇综合网| 五月婷婷六月丁| 精品一二三区久久AAA片| 夜夜操夜夜爽| 3p久久| www.五月婷婷.com| 色五月婷婷丁香婷婷| 丁香五月综合网| 五月婷婷丁香社区| 五月天婷婷色在线视频免费观看 | 中文字幕在线免费观看视频| 婷婷丁香激情五月| 五月天婷婷久久综合| 丁香综合网| 99re思思热久久| 六月五月丁香五月欧美| 激情丁香久久| 六月亚洲| 精品99这里有| 久久视频婷婷| 九久九精品| 色色国产| 五月婷婷网站| 成人婷婷桔色| 色综合九九| 色爱综合五月| 中日韩美欧成人一区二区精品在线| 欧美日本va| 婷婷久久五月| 九九大香蕉黄色影院| 五月丁香色停停啪啪啪| 色天使色综合| 色婷婷呢狠禁久禁| 99成人| 五月婷婷丁香社区| 超碰日日操| 26UUU精品一区二区c〇m| 狠狠狠婷婷五月综合| 五月丁香久久网| 婷婷欠久少妇| 无码免费人妻A片AAA毛片西瓜| 天天色播| 九九AV| 另类激情综合| 99在线观看视频| 开心五月激情网| 五夜丁香| 婷婷五月天AV在线| www夜夜| 丁香五月色欲| 久久色区| 婷婷亚洲综合| 五月天综合网| 偷偷操九九| 99riav 亚洲| 五月婷婷五月天| 五月天色综合| 伊人久久婷婷| 26uuu国产| 九九综合影音先锋| 97九色视频| 97碰碰草| 99爱99操| 九九久久99| 日本久久人人| 五月天婷婷激情网| 五月天色婷婷av| 日本的α片xxxwww| 久久激情五月| 久操大香蕉| 青青草成人网| 婷婷娌伦网| 夜色.cnm| 超级黄色片| 亚洲国产婷婷色五月| 超碰人人草| 色区久久| 9视频在线成人网站| 久久婷婷一级片| 激情综合网五月丁香| 综合99视频| 色婷婷丁香网| 久re热视频| 高清无码网址| 五月天综合视频| 亚洲色五月| 久久色区| 99久热精品在线| 日韩综合久| 伊人影音无码一区二区三区 | 五月婷婷啪啪网| 人人舔天天| 日日干夜夜干| 色爱爱综合网| 天天摸日日舔狠狠添婷婷婷 | 性爱人人网| ss五月天激情| 成人 在线 日韩| 久久婷婷网| 国产精品色| 色色综合热| 激情综合啪啪啪| 99re鈥哸鈥唙| 日操熟女| 五月婷婷另类| 色99热| 激情婷婷激情在线不卡| 91超级碰| 《久久综合九色综合97婷婷| 六月婷婷久久大全| 涩婷婷五月天在线精品视频| 午夜激情四射影院| 五月婷婷之美女图片| 91丨九色丨国产打屁股| 91色操| 久久九九经典| 婷婷色情网| 久久99网| 六月丁香婷婷综合影院| 色婷婷亚洲五月天| 九九色婷| 五月激情综| 色噜噜狠狠色综合成人网| 99九九热播在线免费视频| 久七香蕉| 干一干xxxx| 久久电影五月天丁香电影| 亚洲 日韩色色| 天天色综合网吨吧| 成人无码髙潮喷水A片| 97色五月丁香婷婷| 激情五月天啪啪| 婷婷天天日婷婷| 亚洲综合草草| 五月丁香六月婷婷姐| 久热久69| 五月丁香六月情| 五月天成人综合| 9热视频在线观看| 婷婷色在线播放| 色婷婷AⅤ| 亚洲AV激情五月综合网| WWW久久久| 91精品国产91久久久久青草| 婷婷五月影院| 91啪级电影| 天天色亚洲| 高清 码 免费看片短视频| 能看的av| 26uuu视频欧美| 亚洲色网址| 丁香五月网| 1010日日无码| 91丨九色丨丰满人妖| 免费婷婷| 日日干四虎| 伊人丁香花综合影院| 一级操逼大片| 久9视频免费播放| 玖玖在线| 欧美日韩中文国产一区发布| 婷婷五月天激情在线观看| 五月天婷婷爱| 丁香婷婷五月六月久久| 欧美成人AAA片一区国产精品| 六月丁香深深爱综合网| 九九99精品视品| 蜜乳中文字| 色五月婷婷激情基地| 激情五月天网站| 久操大| 五月婷丁香| 色五月婷婷大| 欧洲第一无人区观看| 五月天伊人日日噜影片AV| 国产精品成av人在线视午夜片| 夜夜躁爽日| 色色狼人综合| 色婷婷亚洲综合天堂| 超碰高清在线| 婷婷五月天奸女| 亚洲九九视频| 人妻内射视频| 亚洲熟妇AV综合网五月丁香伊人 | 亚洲激情六月丁香| www.久久爱| www.五月丁香av| 婷婷综合网性| 97超级啪啪在线观看| 思思99久久| 亚洲日韩人妻操逼| 亚洲天堂热| 亚洲高清在线| 思思re99视频在线观看| 色久婷婷网| 日韩黄色AV无码| 丁香婷婷色九月| 亚洲 视频 导航 一区| 激情五月天婷婷久久久久久久久久久 | 激情五月婷婷在线| 五月天激情久久| 婷婷五月丁香激情| WWW.国产| 国产精品电影| 玖玖热视频| 五月丁香花婷婷玉莉AV| 五月丁香狠狠爱婷婷综合| www.99久久久久99| 国产婷婷五月| 婷婷五月天丁香综合网| 91av传媒高清在线视频网| 久久伊人9| 狠狠999| aa久久| 婷婷中文字暮| 婷婷五月娱乐在线| 粉嫩AV久久一区二区三区| 五月天天爽| 五月丁香六月激情狠狠| 亚洲五月天综合| 在线观看中文字幕亚洲| 婷婷五月综合网| 久久44| 婷婷五月天社区| 91久久婷婷人人澡草 | 青青草原伊人网| 六月丁香五月激情婷婷| 在线五月婷婷小电影| 丁香五月 激情文学| 中文字幕无码人妻少妇免费视频 | 五月天综合缴情网网站0| 狼人婷婷综合| 丁香花五月天激情| 色色五月丁香婷婷| 91亚洲免费片| 色色日本欧美| 一区二区乱码视频| 人妻九九九九| 大香网伊人久久综合| 97干在线观看| 久久婷婷成人| 免费AV黄在线播放| 婷婷五月天性| 国产精品色婷婷AV综合色色| 婷婷的色色五月天| 色色丁香| 欧美性生交XXXXX无码小说| 99免费在线视频| 国产精品久久久久久久久久| 婷婷99狠| 色狠狠综合入口| 色情婷| 国产性爱一级| 五月天激情综合在线| 俺来也综合网精品一区| 99在线看片| 久久这里只有国产视频| 六月婷婷色色色| 天堂中文国产| 亚洲精品久久久久AV无码| 图片区 小说区 区 亚洲五月| 五月激情在线| 91久草五月天婷婷| 亚洲欧洲另类| 色色五月婷| 婷五月天在线草| 2020夜夜操天天爽| 成人va视频| 人人人操B超碰| 亚洲天天综合| 欧美色色色色色| 九九99精品视频在线观看| 天天干天天爽| 97丁香五月| 91vip在线观看| 操笔无码| xxxx久| 婷婷色网| 91porn一起草| 99热精品综合| 丁香五月香蕉| 99在线资源视频| 《久久综合九色综合97婷婷| 深爱激情九九五月天| 亚洲亚洲永久无码777777| 色五月偷偷| 色婷婷99| 亚洲 视频 导航 一区| 丁香蜜臀黄色婷婷五月天| 色色色国产| 天天操九九插| 色婷婷六月天| 欧美 日韩 成人 在线| 99高级会所久久| 日本va欧美va欧美精品88| 五月丁香福利| Caoporn公开| 亚洲综合激情五月久久| 26uuu在线观看| 一起草av| 五月天婷婷黄色视频| 激情性五月天免费小说视频| 免费精品99| 婷婷五月18永久免费网站| WWW.夜夜操.com| 天天操夜夜橾| 极品精品一区二区三区在线| 激情AV| 六月婷婷五月天| 成人看片网站| 久久精品爱爱| 中文字幕不卡+婷婷五月| 青青草青青草五月天| 久久综合干| 欧美爆乳一区二区三区| 四季8848精品成人免费网站| 久久亚洲婷婷综合色五月| 五月色综合网| 亚洲视频1区| 99 色色吧| 另类激情五月| 伊人色综合影院视频| 亚洲A色| 日日夜夜干| 亚洲第一黄网| 色色色色五月天| 六月丁香成人| 99热99免费| 99网| 伊人五月天日日夜夜久久久天天| 亚洲丁香花色| 婷婷色网| AV堂狠狠干| 91婷婷丁香| 婷婷九月丁香天堂丁香天堂| 欧美成人性爱网| 五月激情四射网站| m色激情网| 嫩草AV久久伊人妇女超级A| 久久精品9| 丁XX 成人| 婷婷激情四射五月天| 色丁香久久久| 婷综合六月| 色五月婷婷丁香五月| 9久热精品在线视频| 婷婷五月中文在线| WWW.桔色成人.COM| 色播丁香婷婷五月激情| 日本道久久91| 五月天激情国产综合婷婷婷| 色碰碰视频| 伊人久久婷| 噜噜色五月| 97色女人在线| 丁香婷婷六月激情文学| 免费看欧美成人A片无码| 99热热九九| 99超级碰免费视频| 五月天激情无码高清| 国产黄色在线| 可以免费观看的AV| 综合五月草| 国产精品色色| 亚洲综人色综网| 99无码视频| 五月丁香啪啪拍| 婷婷的五月天另类视频| 久色| 婷婷丁香人妻| 色噜久| 91成人品| 久色中文| 丁香色综合| 日日综合网| caopeng97日韩| 9色操| 六月婷婷久久| 天天操夜夜夜拍拍拍| 婷婷天堂伊人| 五月天大香蕉| 五月婷婷福利| 狠狠综合| 激情婷婷黄色五月| 天天干,天天日| 婷婷丁香激情五月天色色| 五月婷婷色白丝| 综合网色| 婷婷五月天激情网站| 色五月偷偷| 99热一区| 欧美丁香五月| 蜜桃婷婷丁香| 综合网色| 久久香视频| 夜夜干 夜夜操| www开心激情网| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 五月天丁香久久| 第四色色六月色综合| 婷婷天堂伊人| 伊人五月天| 俺去也婷婷| 国内婷婷丁香社区在线播放| WWW色色色COm| 青青色com久久| 97色色婷婷| 婷婷五月激情丁香| 国精产品一区二区三区| 888精品福利地址| 亚洲有码在线视频| Www.se.久久| 国产这里只有精品| 翔田千里 50岁 无码| 亚洲一区二区无码蜜乳av| 久久色情| 久久伦乱| 十区AV| 九九爱激情| 99精品在线| 色播五月综合网| 婷婷五月深深爱| 久草久青福利| 热九九在线| 超碰猛烈的性猛交| 另类丁香综合| 激情久久综合网| 狠狠爱青青草| 在线18av | 无码99| 色色婷| 激情亭亭五月| 五月婷婷成人| 99热国内精品| 五月婷婷色影院| 日本丁香五月| 日91高清无玛| 91狠狠综合网| 色情五月丁香| 337p大胆噜噜噜噜噜91Av| 天天操婷婷| 丁香五月五月婷婷五月天激情四射| 婷婷色播综合五月| 激情综合网婷婷久久| 色五月大香蕉| www.激情五月天。com| 婷婷六月啪啪| 丁香无月在线观看| 婷婷五月成年人| 2014天天爽| 五月丁香六月在线欧美| 婷婷丁香射射| 婷婷六月网| 春色激情第四色| 婷婷天天插天天爱| 久久人人人人妻| 色情免费视频播放| 夜夜夜夜夜操| 中文久久婷婷| 小视频久久久aaa| 伊人久久婷婷| 中文幕无线码中文字蜜桃| 深爱五月婷婷| 色婷婷yy久| 久艹伊| 视频一二区| 五月丁香六月综合基地| 中海油常州环保涂料有限公司| 色五月天影视| 亚洲激情五月婷婷日日| 激情五月天www| 精品久久人妻| 婷婷五月色播| 97luluse| 久热成人| 久色网五月| 99热这里只有精品搜| 日日夜夜狠狠操| 久久久.COM| 激情AV| 日本www免费九九| 五月丁香视频色色| 热99精品视频观看| 人人摸人人摸| 91九九| 久月久在线视频| 99久久久久久久| 色色婷婷五月天| 婷婷伊人激情婷婷| 99精品免费视频| 日日操夜夜爽| 成人免费视频一区| 五月丁香激情综合啪| 天天操夜夜肏| 97av在线视频| 成人精品在线观看| 中文精品在| 99啪视频在线观看| 久久婷婷五月综合97色一本| 丁香色综合| 色狠狠综合| 成人中文网| 夜色综合网| 成人超碰AV| 色99网站| 亚洲激情免费视频| 久久综合激情| 色99无码| 思思w99| 日韩视频99| 中文字幕欧美精品久久| 丁香五月天人体| 日日干夜夜干| 丁香婷婷婷婷十二月在线观看视频| 丁香丁婷五月激情| 大香蕉婷婷久久| 五月天婷婷婷| 插插插丁香五月婷婷| 十一月婷婷激情四射| 成人无码精品1区2区3区免费看| 国精产品一区二区三区| 久久这里99| 性色五月天| 五月婷婷九九热| 婷婷五月天a| 五月丁香激情综合| 操操人人| 九九热大香蕉| 亚洲AV免费国产电影| 五月婷婷综合色啪首页| 精品亚洲国产成AV人片传媒| 九月丁香婷婷| 成人AV在线电影| 日韩天堂久久| 婷婷王月天影院| 蜜桃成语时李时珍 免费| 久久久性爱视频| 色停停五月天| 日韩三级高清无码| 开心五月综合| 色亭亭丁香五月天| 2025天天操| 五月J香蕉婷婷| 亚洲婷婷丁香五月天激情小说 | 99在线公开视频| 色婷婷狠狠18| 5五月综合网亚洲| 思思热国产在线| www.色五月| 色婷婷国色天香综合| 六月丁香网| 九九Av| 99啪啪| 成人片在线播放| 丁香花五月天激情| 婷婷色综合| 五月婷婷激情久久| 天堂婷婷五月在线| 亚洲精品无人区| 色五月婷婷大| 色情成人五月天| 色六月视频| 婷婷五月天亚洲综合网| 亚洲日韩欧美综合VA| 成人国产网站| caop在线视频| 秋霞午夜理论| 激情综合网激情五月丁香五月俺也去| 91九色 熟| 日韩精品二三区| 日韩啪图| 色婷婷丁香| 婷婷五月天成人导航| 激情五月综合网| sewuyue第四色| 天天婬色综合| 99人碰碰碰| 婷婷久久综合久| 伊人久久婷婷| 天天天天天久久久久久| 538任你爽视频不一样的| 婷婷五月香蕉| 激情五月无码| 九月av在线| 亚洲九九夜夜| 五月丁香婷婷啪啪综合网| 五月色亭丁香| 久久九九99| 就爱干 在线| 色婷婷啪啪| 色婷婷操逼| 激情五月婷婷网在线观看| 九月婷婷在线视频| 婷婷五月色综合| 夜夜躁狠狠| 91九色成人原创视频| 51XX午夜影福利| WWW丁香五月| 波多野结衣成人作品在线| 99热综合在线| 蜜桃五月天色| 91欧美| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 99操中文视频| 97综合视频在线| 五月天大香蕉| 婷婷开心激情| 色色啊| 2015WWW永久免费观看播放| 99成人在线观看| 婷婷五月天激情诱惑| 9久热| 伊人丁香五月婷婷潮吹| 午夜丁香婷婷| 国产精品视频| 强伦轩人妻一区二区电影| 欧美激情综合色综合啪啪五月| 丁香五月香蕉| 人妻在线中文字幕久久| 一区二区三区视频| 9九色首页| 七月丁香婷婷 色色| 99无码视频| 天天干 夜夜爽| 五月色丁香婷婷中文字幕| 丁香大香蕉| 大香人妻| 日本三级99人妇网站| 激情五月五月婷婷| 在线网黄| 久久人人妻| 婷婷五月久久| 开心四月婷婷在线色播播| 丁香六月久久| 偷拍91九色| 极品少妇婷婷五月| 色欲AVV| 色婷婷小说| WWW.婷婷| 天天干天天干天天干天天干天| 日日夜夜天天| 丁香五月天电影| 五月天婷婷在线播放免费| 九九一综合精品| 深爱 五月天| 97人人草| 婷婷丁香日韩五月| 超碰97在线操| 中日韩美欧成人一区二区精品在线 | 黄色片久久| 激情婷婷五月天| 久久婷婷精品| 激情五月婷婷| 亚洲欧洲另类图片| 东京热五月婷婷| 95精品区一区二| 精品国产乱码久久久久久免费| 婷婷丁香18| 色婷婷电影网| 99在线免费观看| 在线99热| 一二线视频 另类| 国产精品18久久久| 久99久视频精品| 色九月综合| 色色综合五月| 国产肏屄大片| a网站免费观看| 久久五月天激情美女| 性色欲情 网站| 丁香婷婷六月婷婷六月婷婷六月婷婷| 五月色亭丁香| 日本性激情色播| 五月天综合影院| 激情综合激情综合| 91精品久久久久久77777| 六月丁香五月天| 六月色色| 婷婷激情五月天桃花网| 激情综合五月| 99无码精品| 婷婷欠久少妇| 9精品视频在线| 天天色播| wwccc久久久| 国产26uuu| 九九九九国产| 国产SUV精品一区二区6| 91干99| 九九久久99精品免费观看www| 99re6热在线精品视频播放速度| 九九热九九| 色五月丁香伊人| 伊人久久大香线蕉av一区| 久久99久久久久久| 伊人网色婷婷五月天| 婷婷五月精品中文| 五月婷丁香花| 天天爽综合网| 五月丁香六月激情欧美综合| 黄色录像网点| 日韩久久色| 九九久久五月天综合伊人| 26uuu国产| 九九黄色网| 综合一啪| 久久婷婷五月草视频在线播放| 九九精品在线观看视频6| 婷婷色婷婷| Caoub青青超碰| 狠狠色婷婷7777久| 色色色色av色色色色| 久久性爱视频网站| 99视频极品在线香蕉| 无码日本精品XXXXXXXXX | 亚洲AV另类| va中文资源在线观看| 美欧成人视频| 67194中文在线| 五月丁香啪| 五月天成人小说| 国产这里只有精品| 女婷久久| 五月丁香五月婷婷| 在线中文AV| 久久婷婷伊人| 五月婷婷激情中文字幕| 婷五月天影院| 热无码A∨| 99热99干| 在线观看免费狠狠色丁香香综合| 婷婷五月综合啪| 丁香五月社区| 中文字幕在线免费| 丁香婷婷激情| 日本97人人| 人人操Av| 99爱在线精品视频免费观看| 99热丁香五月| 婷婷五月天狠狠搞干| 国产精品扒开腿做爽爽爽A片唱戏| 97久久精品| 殴美综合激情五月天免费视频| 五月天久久色| 色综合色综合色综合高潮| 婷婷金品综合视频| 99热在线精品观看| 五月婷婷六月丁香五月| 色开心五月丁香| 色婷婷视频综合| 这里只有精品96| 久久996re热这里只有精品无码| 中文字幕黄色片| 99热综合色图| 婷婷人人操| 中文激情网| 色色免费网站| 精品久久99| 一级性感黄色内射视频| 成人综合视频在线| 婷婷欧美综合| 婷婷中文在线| 五月丁香婷婷爱激情综合网| 免费黄色视频网址| 亚洲人妻av| 色五月激情婷婷| 色婷婷电影网| 日日夜夜天天| 久久在这里有精品| 人人色人人弄人人操| 第四色婷婷最爱| 怡红院AV亚洲一区二区三区H| 精品国产人人爱人人| 最近中文字幕在线中文视频| 五月丁香拍拍激情综合| 国产91资源在线| 婷婷五月天第四色| 大香伊人婷婷影院| 色婷婷先锋| 99热超碰在线| 色色热| 呦呦视频无码播放| 九九热青青草| 性色婷婷| 五月激情六月| 97人人干视频| 停婷丁五月在线| 婷婷伊人综合中文字幕| 色播五月天激情| 激情五月天综合图片小说网站| 九九婷婷激情综合网| 无码任你操| 日韩啪| 五月色综合| 99热视精品| 大香蕉伊在| 91久久婷婷| 五月激情久久综合| 久久五月婷综合网| 五月激情啪啪啪| 丁香五月视频在线观看| 亚洲第二AV| 婷婷综合久久| 严洲天天插| 五月婷婷影| 午夜69成人做爰视频| 五月丁香六月婷婷无码| 婷婷综合色色| 狠狠插.com| 日韩人妻在线观看| 草婷婷在线| 无码动漫AV| 国产 码在线成人网站| 精品A√| 丁香六月色婷婷| 欧美特大片黄| 久久久18| 色色色免费视频| 五月婷婷高清| 色五月婷婷激情基地| 色综合五月天| 九色91国产| 思思久久青草热| 婷婷综合网| 色婷婷色五月综合| 亚洲国产精品二二三三区| 天天日天天插| 色婷五月| 天天综合久久| 99色在线观看视频| 疯狂做受XXXX高潮A片| 日本久久婷婷| 99在线亚洲| site:minyis.com| 欧美日本黄色| 婷婷五月丁香激情图片| 天天干天天爽| 这里只有精品在线观看视频| 激情深爱综合网| 婷婷狠狠久久| 色综合婷婷| 激情久久婷婷| 激情小说色五月| 亚洲天堂色色| 婷婷无码视频| 停婷丁五月在线| 婷婷五月天激情五月天网站| 26uuu国产色| 秋霞成人毛片一级A片| 91操女| 极品人妻VIDEOSSS人妻| 亚洲色婷婷五月天| 成人 在线 日韩| 色五月五月天色婷婷色五月| 亚洲视频伍月婷婷| 五月天婷婷影院影院| 激情五月天啪啪视频| 欧美久久婷婷| 人妻AV在线观看| 在线中文亚洲| 五月婷婷婷综合网| 狠狠色丁香婷婷五月| 99五丁香月| 色网五月婷婷| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 色婷久| 这里只有精品视频免费在线观看| 狠狠插狠狠| 五月丁香伊人网| 99aese| 五月丁香 啪啪啪| 五月丁香六月婷婷免费| 久久只有精品| 色婷婷4| 激情网第四色| 狠狠久综合| 先锋av性爱成人电影| er99免费视频在线| 99er6热在线观看精品6| 欧美激情综合色综合色| 丁香五月激情鲁| 99热这里只有的精品视| 激情性五月天免费小说视频| 亚洲色无码| 日屌日日操日日色| 亚洲五月花| 五月丁香影院| 91干| 人人播| 午夜天堂一区人妻| 国产,欧美,学生妹,视频| 九九综合影音先锋| 99在线播放| 色欲影香| 欧亚色色| 久久久99精品| 婷婷五月天激情文学| 婷色五月天| 99在线热| 久久久久人妻| 99热xx| 人人叉久| 激情另类综合| 免费色色色| 亚洲人人操BD| 91久久九久久九久久九久久九久久 | 手机AVAV天堂看网| 精品成人a v无码内射| 日本九九视频| 婷婷五月天AV| 久久九九思思| 色婷婷丁香九月| 五月花婷婷在线精品视频| 夜夜操夜夜姧| 五月丁香色| 激情小说五月天| 狠狠婷婷色| 美欧成人视频| 丁香五月婷婷久久久| 色区域网站视频| 欧美日本国产欧美日本韩国99| 99这里有精品视频| 天天日日| 久久综合爱| 婷婷开心激情综合五月天| 丁香五月婷婷六月丁香| 天干夜夜操| 久久成人亚洲欧美电影| 五月丁香六月婷婷啪啪| 伊人国产婷婷五月天| 可以看的av| 六月丁香五月婷婷| 色五月97| 亚洲舔观看| 五月丁香六月| 无码少妇高潮喷水A片免费| 操逼国产91| 丁香综合伊人AV| 超碰色综合| 五月丁香亭亭电影久久| 久99久视频| 深爱五月婷| 亚洲色频| enecarbon-materials.com污K127封锁请涟系@wip1688 | 婷婷五月丁香六月| 91狼友视频在线观看| 综合色色网| AV人人操| 99热久久这里只有精品| 五月天婷婷操逼视频| 天天做综合网色综合| 五月婷婷黄色| 伊人超碰在线| 天天成人综合| 久操操| AV在线收看| 久久婷婷欧美| 激情五月综合| 激情99| 五月丁香六月婷婷综合网站| 大香蕉五月天| 五月婷中文字幕| 六月激情婷婷| 国产在线网址1| 婷婷五月天无码熟女| 热九九精品| 亚洲婷婷基地| 日本五月婷| 婷婷五月丁香青青草在线| 婷婷色色五月天| 台湾无码A片一区二区| 9 大屁股在线视频精品| 天天日夜夜夜操操操操| 大香蕉520| 中文字幕在线日亚州9| 人妻久久久久久| 色天使色综合| 亭亭五月激情亚洲在线| 亚洲视频一区| 五月丁香六月婷婷啪啪综合| 超碰人人射| 99啪99| 五月天久久综合婷婷| 在线一起草av| 色婷婷AV久久久久久久| 日本91在线播放| 精品99爱免费视频在线观看| 人妻AV中文系列| 激情网五夜婷婷| 丁香激情五月| 天天摸天天舔在线视频| 久久六月综合| 怡红院 久久| 色五月综合| 深爱五月婷婷开心中文字幕| 狠狠干,狠狠操| 五月开心婷婷极品激情| 日本va欧美va国产激情| 99re熱| 丁香五月影院| 午夜 外网 精品 在线| 国产午夜精品一区二区三区嫩草| 丁香六月 婷婷六月| 九九色综合| 五月天a婷婷伊人| 色色色色色色色色色影院| 超碰狠狠色| 六月婷欧美丁香综合| 五月伊人婷婷| 97久久五月丁香婷婷| 婷婷的99视频网站| 激情五月天噢美| 色欲一区二区三区精品A片 | 久久aaa| 熟女少妇内射日韩亚洲| 五月婷婷免费在线观看| 亚洲AV成人一区二区在线观看| 九九热视频免费的| www.久操| 99热免费精品| 激情综合播播| 日本色色影片| 精品人妻一区二区| 97在线精品| 少妇性按摩无码中文A片| 热热久久99| 91九色丨国产丨爆乳| 啪啪91| 激情小说 五月天| 大伊香蕉玖玖爱| 97福利视频| 能看的av片| 国产综合丁香五月天| 超碰在线人妻| 亚洲久久婷婷丁香五月天| 97操碰日本女人| 啪啪婷婷五月天激情| 天天日,天天射,天天插| 九九精品大香蕉| 99碰网站| 色综合久久88色综合天天人守婷| 男人的天堂av俄罗斯热| 色婷婷狠狠18禁| 色国产五月| 天天综合91入口| 日本久久99| 激情图片五月天| 天天综合久久| 99视频极品在线香蕉| jiZZdr| 精品亚洲VA网站| 色色色色欧洲| 色五月美女| www,天天干| 国产乱妇乱子伦| 久9久9热久热| 五月Huangsewang| 超碰在线成人| 五月婷婷激情视频| 另类五月婷婷| 五月天另类图片区99| 亚洲乱码日产精品BD| 影视av久久久噜噜噜噜噜三级| 狠狠干在线视频| 久月婷婷| 五月色丁香婷婷综合| 天天操综合网| 五月婷婷六月丁香玖玖玫瑰91| 五月丁香 久久久| 日本色图综合| 五月色亭丁香| 婷婷五月影院| 亚洲中文av| 五月婷婷片| 久久这里只有精品无码| 丁香五月激情棕合| 婷婷五月超碰| 思思9久久| 五月色综合| AV色婷婷| 丁香婷婷色| 无码婷婷五月天| 玖玖视频福利| 日本97在线视频| 亚洲成人综合网在线免费观看| 日本高清久久| 综合色播| 曰曰久久| 狠狠插狠狠插| 亚艹艹| 九九婷婷五月天影视| 99这里是99在线视频| 婷婷九九| 97色色婷婷五月天| 成人资源在线| av电影在线播放| 色五月婷婷成人| 99色色| 色五月亚洲| 色欲一区二区三区精品A片| 97热在线精品| 色综合激情| 天天爽日日爽夜夜爽| 亚洲 小说 欧美 激情 另类| 思思热99er在线视频| 欧洲永久精品| 丁香六月色香蕉视频| 97香蕉碰碰人妻国产欧美| 极品色丁香| 欧美色97| 色婷婷88| 精品成人在线观看| 99自拍视频网站| 色五月婷婷在线| 九九自拍网| 日韩人妻在线观看| 久婷婷| 婷婷她六月天| 性爱在线播放av| 天天综合干| 99热日本| 亚洲色a| 激情色情五月天| 丁香婷婷在线| 26uuu欧美日本| 五月天激情小说网| 五月丁香色综合| 丁香九月婷| 六月激情婷婷| 99久久国产宗和精品1上映| 九九色色| 久久色大香蕉| 久久五月天丁香花| 婷婷九月丁香天堂丁香天堂| 丁香五月婷婷激情尤物| 五月丁香激情四射| 99这里有精品视频3| 伊人丁香五月| 这里只有精品在线看| 婷婷狠狠色| 久久99久久99精品免观看粉嫩| 婷婷五月天综合网| 天天干天天做| av中文字幕免费观看| 操操熟女| 久久99久久99精品免观看粉| 婷婷中文字幕| 婷婷一本和五月丁香| 久久婷婷五月综合伊人| 激情婷婷六月天| 久99视频| 国产精品久久久久9999小说| 色婷婷亚洲综合av| 中文精品在| 狠狠肏综合网| 99色性爰网络| 99热欧美| 丁香五月天AV在线 | 美日韩成人| 久久99这里只有精品视频| 色婷婷激情| 91九色在线| 丁香婷婷浪潮AV久久综合| 五月婷在线影院| 丁香五月另类小说在线阅读| 亚洲bt丁香五月天婷婷激情小说| 五月 激情视频| 桃色五月天| 婷婷五月综合色中文字幕| 日韩色色网| 婷婷五月综合激情免费| 色色色色五月| 婷婷丁香六月天激情四射网| 五月婷婷色色色| 玖玖精品资源| 久9视频| 九热视频在线伦| 只有精品在线观看| 九九精品网| 天天日综合| 伊人激情综合网| 亚洲中文字幕AV在线| 中文AV在线观看| 婷婷六月插屄激情| 婷婷五月天堂| 日本综合99| 热的五码久久精品| 色婷婷久久综合久色综| 免费观看的av| 久久婷婷五月综合啪| 久久奄也去色色网站| 狠狠爱激情网| 99精品综合在线| 日韩砖区| 五月天久久婷婷| 99啪在线视频| 天天爽综合| 色欲天天综合网| 久久久99免费视频| 婷婷丁香五月综合激情视频| 国产超碰在线| 大香蕉99| 五月婷婷丁香在线| 色爱99| 婷婷五月天第四色| 色婷婷在线视频| 五月天停停日日| 怡红院精品视频久久久久久久久| 色婷婷av在线观看| 黄色一极大片| 国产,欧美,日韩,性爱| 激情久久久| 婷婷久热| 国产精品国产| 亚洲人成网站999综合| 丁香婷婷射| 六月丁香久久| 久9视频| 99热碰碰热| 冬月かえでAV无码播放| 伊人五月成人| 五月丁香婷婷成人网| 色波激情五月天| 丁香色婷婷五月天| 日本啪啪网| 99国产精品久久久久久久久久久| 久热99狠| 开心五月深爱激情| 97在线观看| 色婷婷视频| 六月婷婷综合| 草操网| 五月天婷婷基地| 丁香色五月直播| 大香蕉啪啪啪| 久久婷婷亚洲| 婷婷五月天影院| 亚洲综合九九| 日本久久精品| 99热网站| 五月婷婷影院| 久久五月天大美女| www超碰| 视色网在线播放| 性做爰1一7伦| 五月丁花色综合网| 99视频这里有精品| 五月婷婷婷自由综合| 中文字幕成人版| 五月丁香六月激情综合欧美| 丁香五月婷婷婷桃花影院| 激情五月天综合网| 婷婷激情性爱|