Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我应该为高级帐户创建消耗品订阅还是不可续费订阅?_Ios_In App Purchase - Fatal编程技术网

Ios 我应该为高级帐户创建消耗品订阅还是不可续费订阅?

Ios 我应该为高级帐户创建消耗品订阅还是不可续费订阅?,ios,in-app-purchase,Ios,In App Purchase,我有一个iOS应用程序(和一个网站)。应该有一个高级用户选项,即如果用户是高级用户,则可以访问特殊内容。用户可以每月或每年成为高级用户 第一个问题-苹果是否允许该机构在网站上以及通过InAppPurchase提供相同的产品供购买(遵循苹果的规则-应用程序中不会有任何链接或指示可以在网站上购买相同的产品)。 因此,如果用户通过InApp购买购买了premium帐户,他/她可以与premium用户一样登录网站,反之亦然 如果这是允许的,那么最好是使用耗材类型的产品实现高级用户功能,让服务器管理所有内

我有一个iOS应用程序(和一个网站)。应该有一个高级用户选项,即如果用户是高级用户,则可以访问特殊内容。用户可以每月或每年成为高级用户

第一个问题-苹果是否允许该机构在网站上以及通过InAppPurchase提供相同的产品供购买(遵循苹果的规则-应用程序中不会有任何链接或指示可以在网站上购买相同的产品)。 因此,如果用户通过InApp购买购买了premium帐户,他/她可以与premium用户一样登录网站,反之亦然

如果这是允许的,那么最好是使用耗材类型的产品实现高级用户功能,让服务器管理所有内容,还是使用不可续费的订阅

消耗性方法 执行InAppPurchase,然后向服务器发送请求,告知当前用户在一个月/一年内是高级用户,然后每次应用启动/用户登录时,调用API检查当前用户是否是高级用户

需要处理的棘手案件有: 1.当用户使用应用程序时,恰好在其高级用户状态到期时。 2.如果网络在InAppPurchase完成后关闭,并且对服务器的请求不完整

不可续期认购方式 我不确定它到底是如何工作的,但我猜它与消耗品类似

这两种方法中哪一种更适合恢复以前的事务

  • 是的,只要你在应用程序中提供高级功能(例如,在我们链接到iOS one的Facebook应用程序中,我们为相同的功能实现了Facebook积分)
  • 我们的应用程序(使用可消费的应用程序内启用高级功能)被拒绝了几次,直到我们切换到不可续费的订阅。 premium功能有一个时间限制,苹果拒绝它的原因是,如果premium功能涉及时间而不是添加的功能,你必须使用不可续费的订阅,因为这是它的目的

  • 棘手的案件实际上并没有那么棘手。对于第一种情况,让应用程序从服务器检索过期时间(您在购买订阅权后确实保存了它?;-)并在用户尝试使用高级功能时执行检查以确保他仍然被允许。对于第二种情况,将购买的物品保存在手机中,然后将收据发送到服务器进行验证。只有当服务器是可访问的,并说收据是有效的,删除它从电话。否则,您可以在启动时检查手机中是否保存了未发送的收据,以便重新发送到服务器进行验证。

    非常感谢Andre!还有一件事,为了跟踪高级用户的持续时间,我们应该通过对服务器的API调用进行跟踪,还是使用事务时间检查应用程序本身。我们应该如何处理多个帐户,即如果用户进行了InApp购买,然后使用其他帐户登录?我建议您通过对服务器的API调用跟踪持续时间。对于多个帐户,不可续费订阅与购买它的用户绑定,并且您的服务器知道这一点。因此,如果刚购买premium的apple id使用另一个帐户注销并重新登录,那么premium功能应该在imho中被禁用。抱歉,我在之前的评论中不清楚。苹果ID是一样的,但如果你的应用程序中的用户不同,只有第一个用户购买了高级功能,第二个用户不应该自动启用它(当然,我认为)。第二个用户当然可以再次购买premium(是否使用相同的Apple ID帐户)。最后一个问题-如果用户使用一个帐户进行InApp购买,然后注销并使用应用程序中的其他帐户(相同的Apple ID)登录,则会显示一条消息,说明“您已经购买了此产品,是否要再次购买或续订?“。是否有任何方法不向其他用户显示该消息?当新用户再次尝试购买高级功能时或登录后,该消息会出现?”?第一种情况是很正常的,因为苹果知道他的身份证已经买了你一次。如果是第二种情况,那么您的实现中一定有问题。