逆向解構:摩拜單車月卡系統
在共享單車市場已成紅海、小型創業公司不斷倒下的今天,月卡成為摩拜、OFO等玩家拉新、留存的不二選擇。在本文探究了摩拜單車的月卡系統運行方式,以下就是作者探究的過程和結論,其中必有疏漏,歡迎指正、討論。
PS. 本文詳細描述了作者探究的全部過程,如果不想了解詳細過程,可以直接拉到最后看結果 ^_^
前提
- 178開頭手機號、185開頭手機號,均未注冊摩拜單車
- 測試日期為2017年10月3日
探究過程、現象和結論
(1)初次注冊
描述
無
過程
- 注冊新用戶
- 跳過實名認證
- 跳過交納押金
數據
結論
無
(2)H5頁面領取月卡
描述
此時我們先不繳納押金,尋找是否有免費的月卡可以領取。
過程
1. 下圖為國信證券推文,從中我們可以看到,小編很明確地告訴我們領取時間為9月1日——9月30日,但是掃描二維碼進入頁面,使用說明卻顯示本活動領取月卡的最后期限是10月30日。
2. 我們可以看到下圖是兩個不同的活動H5頁面,左邊為官方活動,右邊為飛馬旅的聯名月卡,這兩張月卡推文頁所寫的時間均為10.1-10.30,且頁面模板也與國信證券的有所不同。觀察到,兩個頁面除了顏色和卡名以外完全一致,但是左邊月卡作為官方的發放的卡片,卡名卻依然為聯名月卡。
3. 作者輸入185手機號,成功領取了第一張官方贈送的月卡。但是在嘗試領取第二張同模板聯名月卡的時候,頁面卻顯示您已領取過月卡 不能重復領取的提示。于是作者又嘗試領取國信證券的聯名月卡,提示成功。
4. 使用178手機號領取一張免費月卡
5. 分析頁面URL,發現https://m.mobike.com/h5/partner_coupon/zh/index.html?citycode=021&src=weishuba&from=timeline&isappinstalled=0中頁面內容隨著src的改變而改變
6. 分析H5頁面源碼,發現資源文件中存儲了所有頁面的文字
數據
結論
- 摩拜聯名月卡領取頁自動續期了
- 摩拜官方月卡與其他聯名月卡使用了統一模板
- 所有聯名卡均指向某一模板,相同模板下屬的不同聯名卡不得重復領取
- 領取月卡時并不會檢測是否已繳納押金
- 月卡計算時間只到30天后的24點,而非精確到秒的標準30天時長
(3)繳納押金
描述
按照規則,繳納押金以后應該會贈送一張月卡,事實上卻沒有發現增加;只有剩余天數小于30天(事實上30天也可)才被允許退款
過程
- 向185賬戶繳納押金,發現剩余時間并沒有增加
- 向178賬戶繳納押金,發現剩余時間并沒有增加
數據
結論
- 贈送的月卡會立即生效,幾張有效期重疊的免費月卡允許同時存在,月卡剩余時間以最晚為準
- 首充贈送的月卡與H5頁面贈送的聯名月卡應屬同種
(4)續費
描述
按照規則,與領取的月卡不同,續費之后時間應該在原有基礎上增加,事實上也確實如此
過程
- 向178手機號續費一張一個月月卡,續費之后月卡剩余天數變為60天,在原有基礎上增加了30天,與規則符合。
- 使用185手機號續費,提示失敗,與規則符合
數據
結論
無
(5)退押金
描述
按照規則,退款之后,免費月卡將消失,只剩下收費月卡
過程
- 使用178手機號退款,剩余天數歸零,與規則符合
- 使用185手機號退款,剩余天數為31天,比想象中多1天
- 此時點擊退款退款時,在摩拜的iOS端可以看到這段文字:
數據
結論
- 摩拜的月卡分為免費月卡和購買的月卡
- 在有付費卡的情況下,退款仍然會改變到期日
(6)再次續費
描述
過程
- 使用178手機號充值3個月,剩余天數變為91天,比想象中多1天
- 使用185手機號充值,提示失敗,與規則符合
數據
結論
無
(7)再次領取H5頁面月卡
描述
按照規則,每張月卡只能領取一次,但是規則又寫,如果已領用且仍在有效期內,則不能再次領取,目前的情況是賬號因為退款失去了全部免費額度,那么是否可以再次領取呢?
過程
- 使用185手機號領取H5頁面月卡,提示您已領取過月卡 不能重復領取
結論
- 免費月卡在失效之后,并未刪除,而是設置為失效狀態
八、聯系官方客服
描述
打電話詢問摩拜官方,客服的態度有些不耐煩,但還是拿到了想要的信息
結論
- 月卡只按照月卡創建的先后順序使用,不考慮免費/收費
疑惑和推測解決方案
到這里,還有兩個問題沒有解決
- 為什么3個月月卡購買后為91天(31+30+30),而1個月月卡購買只有30天
- 一個月免費月卡+一個月購買月卡的賬戶,退款前為60天,退款后余額為31天而不是30天
- 針對第一個疑惑,如果摩拜計算日期,僅僅是簡單地改變年份和月份而不是真實計算90天以后的日期(這樣做只需處理2月29日這一種特殊情況),那么2017年10月3日到2018年1月3日相差92天,2017年10月3日到2017年11月3日相差31天,兩個天數均減去1天(即購買瞬間已默認消耗一天),就可以解釋91天和30天的現象了
- 針對第二個疑惑,按前一算法,2017年10月3日到2017年12月3日相差61天,減去當天為60天,60天可以解釋;按照客服說法,依據月卡獲得順序使用,那么消耗的首先是免費月卡,購買的月卡未被使用,要得出31天這個數據,必須有兩個前提:
- 摩拜購買的月卡未被使用前,并不直接寫死到期天數,而是以未使用狀態的卡片存在
- 退押金當日的消費仍然算在上一張卡上,天數計算無需減扣當天使用
總結
總結一下現在所有的推測:
- 摩拜聯名月卡領取頁自動續期了
- 摩拜官方月卡與其他聯名月卡使用了統一模板
- 所有聯名卡均指向某一模板,相同模板下屬的不同聯名卡不得重復領取
- 領取月卡時并不會檢測是否已繳納押金
- 月卡計算時間只到30天后的24點,而非精確到秒的標準30天時長
- 贈送的月卡會立即生效,幾張有效期重疊的免費月卡允許同時存在,月卡剩余時間以最晚為準
- 首充贈送的月卡與H5頁面贈送的聯名月卡應屬同種
- 月卡分為免費月卡和購買的月卡
- 在有付費卡的情況下,退款仍然會改變到期日
- 免費月卡在失效之后,并未刪除,而是設置為失效狀態
- 月卡只按照月卡創建的先后順序使用,不考慮免費/收費
- 摩拜在計算日期時,僅僅是簡單地改變年份和月份而不是真實計算90天以后的日期
- 購買的月卡未被使用前,并不直接寫死到期天數,而是以未使用狀態的卡片存在
- 退押金當日的消費仍然算在上一張卡上,天數計算無需減扣當天使用
根據以上結論,可以設計一個最簡版本月卡,滿足當前需求:
以上就是作者探究摩拜月卡系統的全過程,歡迎大家留言、指正。
本文由 @PTHFLY? 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自PEXELS,基于CC0協議
感謝分享