流程
[ol]
APP 用户本地生成 UUID 并填写他的邮箱地址
后台用邮箱地址和 UUID 计算出 MD5 ,并用后台私钥签名 MD5 ,然后发送给用户邮箱
用户从邮箱中复制数据并回填到 APP 中
APP 本地计算出 MD5 然后和用户从邮箱复制过来的数据验签
如果验证通过则说明用户确实持有这个邮箱地址,并将这个邮箱地址加密保存到 APP 本地,否则让用户重复上面的流程。
后台检查数据库是否已存在邮箱对应的购买记录,不存在则生成订单信息并标记邮箱地址
APP 收到订单信息发起支付
支付成功后,后台收到回调,将该邮箱的购买记录存入数据库
后台以邮箱、UUID 、时间戳和设备等信息记录已付费邮箱的激活记录
用户用本地认证的邮箱和 UUID 询问后台,如果激活记录小于 2 条则记录并允许激活
如果激活记录 >= 2 则阻止激活,除非让旧设备注销,如果旧设备丢失可以以邮箱发送邮件申请人工注销。
[/ol]
可能存在的问题
UUID 生成规则
MD5 不够可靠
发送到用户邮箱的数据可能太长
用户本地 Hack 已认证邮箱
旧设备的注销可能繁琐