[英]iOS In-App Purchase (Consumable) - Server Timeout
我對應用內購買的特定情況有疑問。
我們的應用程序中有購買硬幣的消耗品:
問題是,如果對我們服務器的請求超時或失敗,我們該怎么辦? 用戶花了錢,但永遠不會得到硬幣。 如果他們試圖再次購買,它會給他們一個錯誤,說購買沒有下載。
我看過“恢復交易”選項,但不知道如何在此處應用它。 我寧願在應用程序的某個地方沒有按鈕。
不要擔心這個應用程序尚未發布,這個應用程序是用C#編寫的MonoTouch,但歡迎Objective-C的答案。
恢復交易就可以了。 它只是重新下載購買。 看看這里的第五篇文章:
http://monogame.codeplex.com/discussions/359109
以下是實現它的代碼:
InAppPurchaseManager> MySKPaymentObserver:
public override void PaymentQueueRestoreCompletedTransactionsFinished (SKPaymentQueue queue)
{
foreach(SKPaymentTransaction transaction in queue.Transactions)
{
#if DEBUG
Console.WriteLine("Restoring Transaction " + transaction.Payment.ProductIdentifier);
#endif
theManager.restoreTransaction(transaction);
}
}
以下是如何調用游戲中的代碼:
app = new InAppPurchaseManager ();
app.LoadStore();
SKPaymentQueue.DefaultQueue.RestoreCompletedTransactions();
我的方法是在NSUserDefaults中保存失敗的事務。 因此,每當應用程序來自后台時,它會檢查任何失敗事務的用戶默認值,然后再次重試。
我不確定它是否正確。 但是,我想知道是否有更好的方法來做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.