2015-03-02 64 views
1

我的應用程序的工作方式是,我有註冊過的用戶,他們可以登錄併購買硬幣。這些硬幣是使用StoreKit進行的應用內購買。將玩家ID關聯到交易?

驗證收據的方式是將它們發送到我的服務器。隨收據一起,我發送玩家的用戶名,以便我的服務器知道應該授予的用戶名。

這是問題所在。讓我們說交易失敗。當應用程序嘗試再次進行驗證時,我不會知道哪個用戶購買了這個。

有什麼方法可以將一些元數據添加到事務中,以便我以後可以知道哪個用戶帳戶購買了它?

謝謝

+0

交易失敗是什麼意思?您是否在從應用程序商店成功購買應用程序和應用程序商店之間或應用程序和服務器之間的溝通? – 2015-03-09 01:55:39

+0

@TiagoAlmeida我正在談論這兩個。如果我的應用程序從未收到transactionCompleted通知,則只會在應用程序重新啓動後纔會收到該通知,並且我們不再知道是誰購買了該項目。同樣,如果我的服務器沒有響應,我們不完成交易和應用程序重新啓動,我們不知道誰買了它。 – jmasterx 2015-03-09 01:59:51

回答

2

據我所知,您不能將信息添加到SKTransaction。

我通常會做的是未經驗證的交易隊列。該隊列通常具有包含服務器所需信息(玩家ID),交易本身及其狀態(例如交易是否已完成)的對象?

我試圖每隔一段時間發送一次該隊列應用程序連接的時間,如果失敗超過X次,我會彈出提示,要求用戶發送一封包含問題詳細信息的電子郵件。

+0

你在哪裏存儲這個隊列?另外,如果用戶意外刪除隊列(卸載/重新安裝),會發生什麼情況? – jmasterx 2015-03-09 03:01:47

+0

您可以將該隊列存儲在鑰匙串中,它可以解決您的兩個問題(鑰匙串在安裝之間持續存在) – 2015-03-09 03:09:49