逆向解構:摩拜單車月卡系統

1 評論 13310 瀏覽 54 收藏 11 分鐘

在共享單車市場已成紅海、小型創業公司不斷倒下的今天,月卡成為摩拜、OFO等玩家拉新、留存的不二選擇。在本文探究了摩拜單車的月卡系統運行方式,以下就是作者探究的過程和結論,其中必有疏漏,歡迎指正、討論。

PS. 本文詳細描述了作者探究的全部過程,如果不想了解詳細過程,可以直接拉到最后看結果 ^_^

前提

  1. 178開頭手機號、185開頭手機號,均未注冊摩拜單車
  2. 測試日期為2017年10月3日

探究過程、現象和結論

(1)初次注冊

描述

過程

  1. 注冊新用戶
  2. 跳過實名認證
  3. 跳過交納押金

數據

結論

(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頁面源碼,發現資源文件中存儲了所有頁面的文字


數據

結論

  1. 摩拜聯名月卡領取頁自動續期了
  2. 摩拜官方月卡與其他聯名月卡使用了統一模板
  3. 所有聯名卡均指向某一模板,相同模板下屬的不同聯名卡不得重復領取
  4. 領取月卡時并不會檢測是否已繳納押金
  5. 月卡計算時間只到30天后的24點,而非精確到秒的標準30天時長

(3)繳納押金

描述

按照規則,繳納押金以后應該會贈送一張月卡,事實上卻沒有發現增加;只有剩余天數小于30天(事實上30天也可)才被允許退款

過程

  1. 向185賬戶繳納押金,發現剩余時間并沒有增加
  2. 向178賬戶繳納押金,發現剩余時間并沒有增加

數據

結論

  1. 贈送的月卡會立即生效,幾張有效期重疊的免費月卡允許同時存在,月卡剩余時間以最晚為準
  2. 首充贈送的月卡與H5頁面贈送的聯名月卡應屬同種

(4)續費

描述

按照規則,與領取的月卡不同,續費之后時間應該在原有基礎上增加,事實上也確實如此

過程

  1. 向178手機號續費一張一個月月卡,續費之后月卡剩余天數變為60天,在原有基礎上增加了30天,與規則符合。
  2. 使用185手機號續費,提示失敗,與規則符合

數據

結論

(5)退押金

描述

按照規則,退款之后,免費月卡將消失,只剩下收費月卡

過程

  1. 使用178手機號退款,剩余天數歸零,與規則符合
  2. 使用185手機號退款,剩余天數為31天,比想象中多1天
  3. 此時點擊退款退款時,在摩拜的iOS端可以看到這段文字:

數據

結論

  1. 摩拜的月卡分為免費月卡和購買的月卡
  2. 在有付費卡的情況下,退款仍然會改變到期日

(6)再次續費

描述

過程

  1. 使用178手機號充值3個月,剩余天數變為91天,比想象中多1天
  2. 使用185手機號充值,提示失敗,與規則符合

數據

結論

(7)再次領取H5頁面月卡

描述

按照規則,每張月卡只能領取一次,但是規則又寫,如果已領用且仍在有效期內,則不能再次領取,目前的情況是賬號因為退款失去了全部免費額度,那么是否可以再次領取呢?

過程

  1. 使用185手機號領取H5頁面月卡,提示您已領取過月卡 不能重復領取

結論

  1. 免費月卡在失效之后,并未刪除,而是設置為失效狀態

八、聯系官方客服

描述

打電話詢問摩拜官方,客服的態度有些不耐煩,但還是拿到了想要的信息

結論

  1. 月卡只按照月卡創建的先后順序使用,不考慮免費/收費

疑惑和推測解決方案

到這里,還有兩個問題沒有解決

  1. 為什么3個月月卡購買后為91天(31+30+30),而1個月月卡購買只有30天
  2. 一個月免費月卡+一個月購買月卡的賬戶,退款前為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天這個數據,必須有兩個前提:
  1. 摩拜購買的月卡未被使用前,并不直接寫死到期天數,而是以未使用狀態的卡片存在
  2. 退押金當日的消費仍然算在上一張卡上,天數計算無需減扣當天使用

總結

總結一下現在所有的推測:

  1. 摩拜聯名月卡領取頁自動續期了
  2. 摩拜官方月卡與其他聯名月卡使用了統一模板
  3. 所有聯名卡均指向某一模板,相同模板下屬的不同聯名卡不得重復領取
  4. 領取月卡時并不會檢測是否已繳納押金
  5. 月卡計算時間只到30天后的24點,而非精確到秒的標準30天時長
  6. 贈送的月卡會立即生效,幾張有效期重疊的免費月卡允許同時存在,月卡剩余時間以最晚為準
  7. 首充贈送的月卡與H5頁面贈送的聯名月卡應屬同種
  8. 月卡分為免費月卡和購買的月卡
  9. 在有付費卡的情況下,退款仍然會改變到期日
  10. 免費月卡在失效之后,并未刪除,而是設置為失效狀態
  11. 月卡只按照月卡創建的先后順序使用,不考慮免費/收費
  12. 摩拜在計算日期時,僅僅是簡單地改變年份和月份而不是真實計算90天以后的日期
  13. 購買的月卡未被使用前,并不直接寫死到期天數,而是以未使用狀態的卡片存在
  14. 退押金當日的消費仍然算在上一張卡上,天數計算無需減扣當天使用

根據以上結論,可以設計一個最簡版本月卡,滿足當前需求:

以上就是作者探究摩拜月卡系統的全過程,歡迎大家留言、指正。

 

本文由 @PTHFLY? 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自PEXELS,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 感謝分享

    來自廣東 回復