为什么刷新应用程序后,App Store会退回不同的(旧的)收据-在沙箱中进行测试?

时间:2019-02-02 09:55:05

标签: ios swift storekit

我正在尝试使用沙盒测试我的自动续订订阅。因此,我从mainBundle.appStoreReceiptURL?.path获取本地收据,并将其发送到我的服务器,然后将其发送到App Store。然后,我解析来自应用商店的响应。到目前为止,一切都很好。我的订阅续订服务器代码有效。

我已经验证了两个iTunes测试帐户,并且我已经成功购买和续订了两个帐户的自动续订订阅产品。问题是,有时我会从应用程序商店收到与当前登录的iTunes帐户不符的收据,但以前的收据与之不符。当我的应用从后台进出时,或者在关闭应用并重新启动它时,就会发生这种情况。结果,这弄乱了我对特定用户的订阅验证。有人可以请教吗?

我的服务器代码:

$base64EncodeReceipt = $_POST['receiptData'];
$response = getResponseFromAppStore($base64EncodeReceipt, $SHARED_SECRET);
echo $response;

控制台: 这是我退出时的结果,然后在进入后台后重新进入该应用程序。您可以看到我从original_transaction_id获得了不同的收据。

 as user is signed in. check subscription status
StoreObserver.checkSubscriptionStatusAppDelegate()

applicationWillResignActive
checkSubscriptionStatusAppDelegate response json: {
    diff = 267000;
    "expDate_ms" = 1549103558000;
    "expires_date" = "2019-02-02 10:32:38 Etc/GMT";
    isSubscribed = 1;
    "original_transaction_id" = 1000000499551500;
    "transaction_id" = 1000000499563944;
}
regStatus: 1
subScriptionStatus: 1
SUBSCRIPTION UP-TO-DATE
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
as user is signed in. check subscription status
StoreObserver.checkSubscriptionStatusAppDelegate()
checkSubscriptionStatusAppDelegate response json: {
    diff = "-88695000";
    "expDate_ms" = 1549014602000;
    "expires_date" = "2019-02-01 09:50:02 Etc/GMT";
    isSubscribed = 2;
    "original_transaction_id" = 1000000493992743;
    "transaction_id" = 1000000499335032;
}

0 个答案:

没有答案