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和Mac上购买相同的IAP订阅?_Ios_Macos_In App Purchase_Subscription - Fatal编程技术网

如何防止用户在iOS和Mac上购买相同的IAP订阅?

如何防止用户在iOS和Mac上购买相同的IAP订阅?,ios,macos,in-app-purchase,subscription,Ios,Macos,In App Purchase,Subscription,我已经研究了几天,还没有找到一个结论性的答案 我想在iOS上提供两种订阅类型:Lite和 标准 我想在Mac上提供一种订阅类型:Standard 标准是涵盖iOS和Mac的更大的服务。 Lite是仅支持iOS的较小版本 根据我在AppStoreConnect上看到的情况,Mac比iOS有一个完全独立的IAP。因此,我不能在两个平台之间共享相同的标准订阅类型。尽管标准的服务应该是跨平台的 我当然可以将iOS和Mac的每种收据类型分别存储到我的DB中,并分别直接使用AppStore和MacSto

我已经研究了几天,还没有找到一个结论性的答案

  • 我想在iOS上提供两种订阅类型:
    Lite
    标准
  • 我想在Mac上提供一种订阅类型:
    Standard
标准是涵盖iOS和Mac的更大的服务。 Lite是仅支持iOS的较小版本

根据我在AppStoreConnect上看到的情况,Mac比iOS有一个完全独立的IAP。因此,我不能在两个平台之间共享相同的
标准
订阅类型。尽管标准的
服务应该是跨平台的

我当然可以将iOS和Mac的每种收据类型分别存储到我的DB中,并分别直接使用AppStore和MacStore进行验证。但我无法阻止用户两次购买
标准订阅,一次是从iOS购买,另一次是从Mac购买。这真的很糟糕,因为如果有人犯了这个错误,我也无法退款,因为苹果将他们视为两个不同的应用程序


当然我不是唯一一个有这个问题的人,请问应该怎么做

不幸的是,你不能在你的终端上100%地强制执行这一点,因为它们在Apple land中是独立的应用程序。那该怎么做呢?你需要一个订阅服务器,它可以跟踪所有东西,如果用户在iPhone上购买,则不允许用户在Mac上购买,反之亦然。这篇博客上有一些好的内容,可以帮助你思考如何构建这一点:不幸的是,你无法在你的终端上100%地实施这一点,因为它们在苹果土地上是独立的应用程序。那该怎么做呢?你需要一个订阅服务器,它可以跟踪所有东西,如果用户在iPhone上购买,则不允许用户在Mac上购买,反之亦然。这个博客上有一些很好的内容,可以帮助你思考如何构建这个平台: