【问题标题】:SKPaymentQueue transaction fails with ASDServerErrorDomain Code=5002 in sandboxSKPaymentQueue 交易失败,沙箱中的 ASDServerErrorDomain Code=5002
【发布时间】:2021-04-12 12:55:53
【问题描述】:

已经有效的 IAP 的应用内购买突然在沙箱中失败并显示错误代码:

<SKPaymentQueue: 0x283f14fd0>: Payment completed with error: 
Error Domain=ASDServerErrorDomain Code=5002 "An unknown error has occurred" 
UserInfo={NSLocalizedDescription=An unknown error has occurred}

Console.app 日志显示:

UserInfo={AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZFinance.woa/wa/inAppBuy?guid=1fd5f870740861ead0ea8c82542657a65d3aad90, AMSServerErrorCode=5002, NSLocalizedFailureReason=An unknown error has occurred, AMSServerAllowed=false, NSLocalizedDescription=Server Error, AMSStatusCode=200, AMSServerPayload={
    "cancel-purchase-batch" = 1;
    customerMessage = "An unknown error has occurred";
    failureType = 5002;
    "m-allowed" = 0;
    pings =     (
    );
}}

我正在使用真实设备(使用 iOS 12、iOS 14.4、iOS 14.5(测试版 7))...回答 this similar question
我正在使用 Xcode 12.4 / Xcode 12.5 (beta 3) 进行部署...回答这个问题similar question
我的代码没有更改,也没有更改应用内购买。
通过 TestFlight 进行测试时也会出现同样的错误 当我使用区域为“美国”的沙盒帐户连接并通过美国使用 VPN 时,该错误不会发生。

以下组合会发生错误:

  • 环境:沙盒
  • AppStore 国家/地区美国和其他国家/地区的各种 Apple ID,但使用欧洲 IP 登录
  • Xcode 部署和 TestFlight
  • iOS 12、14.4、14.5
  • iPhone 6、7、X
  • 当前正在生产中的相同版本
  • 曾经工作过的相同代码
  • 仅适用于两个自动续订订阅(自 9 个月以来一直在生产)

以下每种情况都不会出现错误:

  • 环境:生产
  • 仅出于测试目的使用新的自动续订 IAP 时
  • 使用 Apple-ID 和美国 IP 登录时

这个错误是什么意思?我在哪里可以找到这方面的信息?如何解决这个问题?

任何帮助表示赞赏:)

更新

错误不再发生。再一次,我这边没有任何改变。我联系了 Apple 支持,但他们无法向我解释发生了什么 - 可能也是因为它在美国进行测试时有效。

由于我的两个问题都没有得到回答,我将保留这个问题。也许它可以帮助遇到类似问题的人。

【问题讨论】:

    标签: ios swift in-app-purchase storekit skpaymenttransaction


    【解决方案1】:

    当我在 App Store Connect 的应用内购买下添加新订阅时,我在自动续订订阅中遇到了相同的错误代码。

    • 我添加了一个具有正确 product_id 的新订阅,现在它运行良好。
    • 必须在此格式中添加产品 ID -- com.(appName).app.(subscriptionName)。
    • 我在产品 ID 中使用了“_”。也许这就是问题所在。

    希望您的问题将通过此解决方案得到解决。

    【讨论】:

    • 我确实使用了 '_' ...但这些是允许的。由于问题出现在现有产品上,因此我无法更改产品 ID。
    • 您提到当您使用“美国”地区的沙盒帐户连接时不会发生该错误。就我而言,所有沙盒帐户在 TestFlight 和本地测试(直接来自 Xcode)中都可以正常工作。当然,产品 ID 存在问题。尝试添加新的应用内购买进行测试。它可能会解决您的问题。
    • 是的,一定是某些产品 ID 存在问题。我已经添加了一个新产品,并且效果很好。但同样,由于这些 ID 已经在生产中,我无法更改它们。我再次更新了描述,以清楚地概述哪些有效,哪些无效。我真的很感谢你的帮助,但遗憾的是,我的问题都没有得到回答:/
    猜你喜欢
    • 2015-11-26
    • 2017-07-31
    • 2015-09-18
    • 2017-08-29
    • 2016-01-22
    • 2015-04-02
    • 2016-02-15
    • 2014-11-26
    • 2021-05-11
    相关资源
    最近更新 更多