0%

iOS 内购的坑

内购的坑:
1、设计内购订单状态:游客购买(未充值到账户)、游客购买(已充值到账户)、登录用户购买
2、实现游客未登陆模式下购买逻辑,我的app是根据当前是否登录,如果没有登录,默认提取uuid作为订单的用户id,如果登录,用户id就是登录用户的id。
3、因为苹果提到了未登陆下也可以内购,然后提供给这个游客随时注册的方法,这里放在一起考虑就可以得出来结论,当已经产生内购的设备,有用户通过这个设备登录或者注册新用户,通过设备的uuid获取到之前游客购买(未充值到账户)的内购虚拟货币总量,直接充值进当前登录或者新注册的账户中,同时更改这部分内购订单的状态。
4、可以在内购充值的时候,弹个框仿照B站,提示说
登录账号(推荐,可在不同设备使用)
以游客身份继续(仅限当前设备使用)

注意下:使用uuid需要存储到系统中的keychain中,来保证以后每次可以得到相同的唯一标志。

最后加一点个人理解:内购这东西,有人说是绑定用户的appid,但是我通过设备绑定也上架了,苹果并不是强制要求内购绑定用户当前登录的appid,主要是需要让用户在不登录下能以游客方式进行内购!!!
因为并没有看到任何接口或者方法通过用户的appid可以查询到内购订单。
但是通过设备uuid的模式,确实可行。而且这样实现也比较简单,同时也做到了逻辑严谨。