SKPaymentQueue 交易失败,沙箱中的 ASDServerErrorDomain Code=5002

Posted

技术标签:

【中文标题】SKPaymentQueue 交易失败,沙箱中的 ASDServerErrorDomain Code=5002【英文标题】:SKPaymentQueue transaction fails with ASDServerErrorDomain Code=5002 in sandbox 【发布时间】: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 进行测试时也会出现同样的错误 当我使用区域为“美国”的沙盒帐户连接并通过美国使用 *** 时,该错误不会发生。

以下组合会发生错误:

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

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

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

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

任何帮助表示赞赏:)

更新

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

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

以上是关于SKPaymentQueue 交易失败,沙箱中的 ASDServerErrorDomain Code=5002的主要内容,如果未能解决你的问题,请参考以下文章

iOS9 SKPaymentQueue 相关问题 - 应用返回前台时事务意外终止

在应用内购买 iOS 中恢复交易

SKPaymentTransaction(Swift 3)中的交易错误转换问题

如何通过MySQL手动跟踪WordPress中的沙箱Paypal重复交易

如何解决贝宝沙箱中的此错误

如何在 MPL Paypal 沙箱中检查交易?