活久見,網(wǎng)友在12306和攜程上搶到了同一張火車票
春運(yùn)搶票實(shí)錄:網(wǎng)友在12306和攜程上搶到了同一張火車票。
再有幾天就要過年了,因?yàn)榭谡值膹氐捉Y(jié)束,所以今年的火車票特別搶手,不知道大家都搶到了嘛?
今天看到一個(gè)網(wǎng)友的搶票問題,跟程序這塊關(guān)系很大,特別分享給大家。
這個(gè)網(wǎng)友同時(shí)在12306和攜程上搶票,結(jié)果在12306和攜程上竟然搶到了同一張票,同一車次、同一個(gè)座位,關(guān)鍵是錢付了兩份,這真是一個(gè)好消息和一個(gè)壞消息。如下圖所示,左邊是攜程,右邊是12306。
圖片
問題原因
出現(xiàn)這個(gè)問題的原因是什么呢?
我們先來分析下在12306和攜程買火車票的邏輯。
12306:12306就是銷售火車票的官方APP,下單成功那就是真的在數(shù)據(jù)庫中寫入了一條訂單記錄,你能看到訂單就代表搶票成功了,而且這個(gè)下單的過程是有事務(wù)隔離保證的或者同一車次就是排隊(duì)一張張?zhí)幚淼?,一張票不?huì)賣給兩個(gè)人。搶到票之后,抓緊時(shí)間付錢就行了。
攜程:攜程本身不賣火車票,所以它最多就是個(gè)代理。
- 這個(gè)代理可能是官方授權(quán)的,不過自從能在網(wǎng)上買票之后,火車票代售點(diǎn)都關(guān)門很久了,所以攜程不大可能是這種;
- 之前還有一種是調(diào)用接口下單,不過12306已經(jīng)明確不對(duì)第三方開放接口,所以這個(gè)大概率還是各個(gè)平臺(tái)收到預(yù)約之后再去12306操作的;
- 最后就是目前比較流行且靠譜的bypass搶票模式,它實(shí)際上是模擬用戶的瀏覽器操作,只不過全都由程序代勞了,這個(gè)速度肯定比手工操作要快,所以搶到票的幾率也比較高,攜程應(yīng)該也是用的這種方式。
怎么判斷有沒有搶到票呢?
根據(jù)網(wǎng)友的這個(gè)問題現(xiàn)象,我猜攜程大概率是不斷的刷新訂單頁面,如果發(fā)現(xiàn)有對(duì)應(yīng)車次的訂單,就認(rèn)為已經(jīng)下單成功,然后扣掉用戶的款項(xiàng),通知用戶搶票成功。
這是一種簡單的方式,也比較節(jié)省資源,不用一直保持連接或者輪詢,但是就很容易出現(xiàn)網(wǎng)友遇到的這種問題。有沒有更好的方式呢?當(dāng)然有。
大家如果使用bypass這個(gè)工具搶票,可能會(huì)注意到它在提交訂單后會(huì)在日志中顯示正在排隊(duì),并一直等待12306的返回結(jié)果,要么下單成功,要么給出下單失敗的原因,這是和我們?cè)?2306上搶票的體驗(yàn)一致的。猜測bypass應(yīng)該是模擬了12306網(wǎng)頁下單的處理方式。
這樣就不會(huì)出現(xiàn)攜程遇到的這個(gè)問題。當(dāng)然這只是一種合理的猜測,具體問題原因很難確定,也許攜程也是做了完整的模擬,只是出了點(diǎn)別的問題,比如恰巧機(jī)器重啟了。
加價(jià)會(huì)有效果嗎
很多搶票平臺(tái)都推出了加速搶票的功能,這真的有用嗎?
先說結(jié)論,有點(diǎn)用。
加了錢,平臺(tái)可能就會(huì)給你分配更多的計(jì)算資源。比如普通用戶是10個(gè)人使用同一個(gè)IP搶票,12306可能會(huì)認(rèn)為這是作弊,搶票高峰期,這個(gè)IP就可能會(huì)被封掉,加了錢可能就是5個(gè)人使用同一個(gè)IP,甚至獨(dú)占IP,這樣被封掉的概率就低了很多。IP只是一個(gè)方面,CPU、內(nèi)存、網(wǎng)絡(luò)等資源都可以劃分成不同的等級(jí)來進(jìn)行分配。
不過這個(gè)性價(jià)比就很難說了。
因?yàn)槟闶褂妹赓M(fèi)的bypass也能達(dá)到同樣的效果。不過有時(shí)因?yàn)楣纠锾嗳藫屍保?2306可能會(huì)封禁公司IP一段時(shí)間,解決這個(gè)問題也很簡單,你完全可以使用家里的電腦搶票,或者弄個(gè)便宜的云服務(wù)器,獨(dú)占資源不容易被封,也就更容易搶到票。
比如我這個(gè)阿里云搶占型實(shí)例,每個(gè)小時(shí)也就是幾分錢,一天也就是一塊多。
圖片
而攜程這種黑盒的模式,你完全不知道它使用了多少資源來給你搶票,也許是10秒才給你請(qǐng)求一次,而且攜程可以分配的機(jī)器和IP數(shù)量總歸有限,放票的時(shí)候12306看過來的請(qǐng)求太多了,很可能就會(huì)把它封掉,從而錯(cuò)過了最佳搶票時(shí)機(jī)。后邊搶到了票呢,就純屬巧合。對(duì)于搶票平臺(tái)呢,在大用戶基數(shù)的情況下,總會(huì)有很多用戶搶到票,從而賺取一大票代理費(fèi),可以說穩(wěn)賺不賠。
當(dāng)然對(duì)于回家過年來說,多一種渠道總是好的,只是希望大家不要錯(cuò)付了期待。
怎么解決這個(gè)問題
如果已經(jīng)在12306付款成功,銀行流水或者支付平臺(tái)顯示的收款方就是12306,那么這就是你自己在12306購票成功了,其它人和平臺(tái)都不會(huì)再買到同一車次的同一張票,也不會(huì)支付成功。
所以這時(shí)候就要去找搶票平臺(tái),說明你遇到的情況,讓他們?nèi)ゴ_認(rèn)是否真的向12306支付了這筆款項(xiàng),讓他們退款。搶票平臺(tái)內(nèi)部也會(huì)有完整的支付日志的,付沒付,一查便知。
還有極少數(shù)的網(wǎng)友遇到12306多次扣款的情況,這個(gè)處理起來也不難,給12306打電話,提供你的付款單號(hào)和車次,讓12306去調(diào)查,都能查清楚的,金錢交易都有極為嚴(yán)格的日志記錄。
以上就是本文的主要內(nèi)容。
當(dāng)年華如梭,又是一年歸家的時(shí)節(jié)。口罩的脫去仿佛昭示著時(shí)代的變遷,我們又能自由地呼吸家鄉(xiāng)的空氣?;疖嚻钡囊患堓p描,背后承載著無數(shù)游子的急切與期待,它們?nèi)缤瑲w巢的燕子,在寒風(fēng)中追逐著溫暖的春光。
遙想十幾年前的春節(jié),我站在售票點(diǎn)外的寒風(fēng)中瑟瑟發(fā)抖,也只搶到一紙站票,技術(shù)的便捷讓我們搶票更佳方便,只是我們好像永遠(yuǎn)無法走出沒票的困境。
但愿在這個(gè)春運(yùn)的浪潮中,每一位旅人都能順利抵達(dá)心之所向。愿每一次的技術(shù)進(jìn)步,都能為人們帶來更多的便利與溫馨,而非困擾與迷茫。愿我們都能在這個(gè)溫情融融的節(jié)日里,收獲平安喜樂,團(tuán)圓美滿。