我正在尝试使用沙盒测试我的自动续订订阅。因此,我从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;
}