必威体育Betway必威体育官网
当前位置:首页 > 运营推广

逆向解构:摩拜单车月卡系统

时间:2019-07-16 10:10:00来源:运营推广作者:seo实验室小编阅读:66次「手机版」
 

摩拜月卡

在共享单车市场已成红海、小型创业公司不断倒下的今天,月卡成为摩拜、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天以后的日期

购买的月卡未被使用前,并不直接写死到期天数,而是以未使用状态的卡片存在

退押金当日的消费仍然算在上一张卡上,天数计算无需减扣当天使用

根据以上结论,可以设计一个最简版本月卡,满足当前需求:

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

题图来自PEXELS,基于CC0协议

相关阅读

190321 逆向-花指令去除(脚本)

Pizza的脚本中是通过get_bytes和patch_bytes两个API来将所有机器码读出然后再Patch回去的中间匹配pattern的过程是构造字符串然后

深圳暂扣万辆共享单车 彻底净化全市人行道

A5创业网(公众号:iadmin5)6月4日报道,共享单车虽然已经成为人们生活中便利的交通工具,但因个别市民的素质问题,随意停放共享单车,成了人

支付宝共享单车有哪些类型的?怎么使用支付宝共享单车?

支付宝共享单车有哪些类型的?怎么使用支付宝共享单车?支付宝在4月29日开始已经宣布了版本更新,为大家带来了车旅服务这一行,这也是

Android逆向之某拜蓝牙开锁原理探究

准备工作

浅析摩拜单车的发展历程,思考产品的未来

摩拜单车及其竞争对手 ofo 发展势头迅猛,透过行业资讯两家均有可能成为下一个独角兽公司。令人惊讶的是,在这个互联网寒冬时期,依然

分享到:

栏目导航

推荐阅读

热门阅读