【发布时间】: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