通过 App Store Connect API 在所有地区设置价格(用于自动更新订阅)

问题描述 投票:0回答:3

我有一个应用程序,其订阅服务相对复杂(大约80个订阅)。我正在尝试使用以下教程设置订阅价格:

https://developer.apple.com/documentation/appstoreconnectapi/app_store/auto-renewable_subscriptions/managing_auto-renewable_subscriptions#4054523

一切都好开始。我找到我想要的价格,然后找到所有地区该价格的均衡。我遇到的部分如下:

要为另一个地区设置价格点,请使用 POST 再次 /v1/subscriptionPrices (创建订阅价格更改), 将 subscriptionPricePoint ID 替换为您的其他值 从 GET /v1/subscriptionPricePoints/{id}/equalizations 获取(列表 所有订阅价格点均等)。如果订阅是 在所有地区都可用,单独的 POST 每个地区都需要调用 /v1/subscriptionPrices。你可能会 考虑自动化此步骤。

如果我的应用程序在所有 160 个地区都可用,则我需要发出 160*80=12800 个发布请求。如果我尽可能快地发送帖子,我每秒就能收到几个帖子,这仍然需要一个多小时。但是,当我这样做时,我收到 429 错误:

{'错误':[{'状态':'429','代码':'RATE_LIMIT_EXCEEDED','标题': '已达到请求速率限制。', 'detail': "我们已收到 对此 API 的请求太多。请稍候重试或放慢速度 您的请求率。"}]}

当我通过应用程序商店连接 GUI 设置价格时,我可以非常快速地在所有地区设置价格。我似乎找不到它,但似乎必须有一种比执行 12K post 请求更快的方法。是否可以批量处理这些发布请求,或者允许我同时设置所有均衡的另一个端点? 任何帮助将不胜感激。

ios in-app-purchase app-store app-store-connect in-app-subscription
3个回答
1
投票

请按照以下步骤操作:-

  1. 最少从pricePoint开始:调用端点
    /v1/subscriptions/{id}/pricePoints
    获取所有价格的列表,过滤掉并保留下一个端点所需价格的价格id。
  2. 现在使用上述价格 ID 调用端点
    /v1/subscriptionPricePoints/{id}/equalizations
    ,您将收到所有地区的价格 ID。
  3. 现在不要调用
    /v1/subscriptionPrices
    来设置价格,而是需要使用 PATCH 调用
    /v1/subscriptions/{id}
    意味着您需要修改您创建的订阅(使用此功能,我们可以一次添加所有地区的价格) https://developer.apple.com/documentation/appstoreconnectapi/modify_an_auto-renewable_subscription

我认为苹果文档上的信息含糊不清或者缺乏关于此事的明确细节:

要为另一个地区设置价格点,请使用 POST 再次 /v1/subscriptionPrices (创建订阅价格更改), 将 subscriptionPricePoint ID 替换为您的其他值 从 GET /v1/subscriptionPricePoints/{id}/equalizations 获取(列表 所有订阅价格点均等)。如果订阅是 在所有地区都可用,单独的 POST 每个地区都需要调用 /v1/subscriptionPrices。你可能会 考虑自动化此步骤。

https://developer.apple.com/documentation/appstoreconnectapi/app_store/auto-renewable_subscriptions/managing_auto-renewable_subscriptions


0
投票

这不是一个很好的解决方案,但可能是给定 API 的最佳解决方案。您可以使用以下方法确定 api 请求的速率限制:

https://developer.apple.com/documentation/appstoreconnectapi/identifying_rate_limits

在我的例子中,限制是 3600,所以我必须限制为每秒 1 个,并让它运行 3.5 小时。


0
投票

苹果通过收取 30% 的应用内购买费用赚取了数十亿美元,他们甚至不关心编写清晰的文档。 在第一步中,最好从 PricePoint 开始:调用端点 /v1/subscriptions/{id}/pricePoints 来获取所有价格的列表,过滤掉并保留下一个端点所需价格的价格 ID。我正在寻找 PricePoint id。需要什么ID?整个过程既愚蠢又令人沮丧!

© www.soinside.com 2019 - 2024. All rights reserved.