我的个人app跟你的模式一致,前期也是被拒,详细阅读了苹果关于内购的说明后,理解了苹果内购针对的是设备和当前应用。
解决办法很简单:
1、设计内购订单状态:游客购买(未充值到账户)、游客购买(已充值到账户)、登录用户购买
2、实现游客未登陆模式下购买逻辑,我的app是根据当前是否登录,如果没有登录,默认提取uuid作为订单的用户id,如果登录,用户id就是登录用户的id。
3、因为苹果提到了未登陆下也可以内购,然后提供给这个游客随时注册的方法,这里放在一起考虑就可以得出来结论,当已经产生内购的设备,有用户通过这个设备登录或者注册新用户,通过设备的uuid获取到之前游客购买(未充值到账户)的内购虚拟货币总量,直接充值进当前登录或者新注册的账户中,同时更改这部分内购订单的状态。
当初因为这个被拒两次,后来看完文档完全了解了苹果内购的机制,内购不能建立在自己app的用户系统,而且重点是uuid同设备同一个app是完全一致的。不用担心卸载之后会变化。
ps:这样修改之后一次审核过了,完美。
、
最后加一点个人理解:内购这东西,有人说是绑定用户的appid,但是我通过设备绑定也上架了,所以我感觉,苹果并不是强制要求内购绑定用户当前登录的appid,因为并没有看到任何接口或者方法通过用户的appid可以查询到内购订单。所以这点还有待商榷。但是通过设备uuid的模式,确实可行。而且这样实现也比较简单,同时也做到了逻辑严谨。