2012-05-03 90 views
9

我在我的應用程序中提供非消耗品。如何檢查用戶是否已經下載非消耗品Inapp購買

假設用戶購買該項目並嘗試將該應用程序安裝在具有相同ID的另一個設備上。如果用戶已經登錄並且已經購買了該項目,我想顯示一些彈出窗口並告訴用戶您已經購買了它,因此現在免費下載。現在發生的情況是,當我再次點擊購買項目時,是說,你已經購買了該項目點擊下載。

有沒有什麼辦法可以獲取用戶登錄信息,並檢查用戶是否已經進行了應用程序內購買。

當我登錄並嘗試購買已購物品時出現問題。兩種警報視圖不時出現。我正在使用沙箱環境。

  1. 您已經購買這一點,但它一直沒有downloaded.Tap OK,現在下載。 這個警報視圖只有OK按鈕。當我們按下OK控制去 - (void)failedTransaction:(SKPaymentTransaction *)事務

  2. 你已經購買了這個。點擊OK再次下載它free.this警報視圖有兩個按鈕之一是取消,另一個是OK。在按下確定按鈕控制進入 - (void)completeTransaction:(SKPaymentTransaction *)事務是好的。

一個想法,爲什麼交易顯示這種奇特的行爲。

謝謝

回答

6

我不明白你爲什麼認爲你需要做任何不同的事情。如您所說,系統檢測到用戶已經擁有該產品,併爲用戶提供「點擊下載」警報。如果用戶選擇下載,那麼你得到一個SKPaymentTransaction,其狀態是「已購買」或「已恢復」(我忘記了哪一個)。然後你照常提供產品。所以用戶知道他沒有被第二次充電,並且他得到了產品。

如果您想要自動檢測用戶擁有的產品,而無需用戶執行任何操作:只能將restoreCompletedTransactions發送到SKPaymentQueue。當你這樣做時,用戶可能不得不輸入他的iTunes密碼。我更喜歡在我的用戶界面中只有一個「恢復購買」按鈕,因此用戶知道他爲什麼被要求輸入密碼。

+0

我編輯了我的問題。現在其他問題已經出現。你可以幫我解決 – rocksvick

+0

你有什麼想法嗎?爲什麼這種不同的行爲在沙箱環境中的不同場合? – rocksvick

+0

我不知道。我沒有看到這個問題。 –

0

Sandbox似乎存在很多穩定性問題,請參閱Apple Developer Forum中的此線程https://devforums.apple.com/thread/164500?tstart=0(需要登錄)。我一直在測試應用程序購買與消費品,從未見過案例2,我只得到案例1(正如在論壇中提到的)。所以,你可能認爲自己是幸運的,甚至得到2)不時:(

0

已經面臨着兩個問題,我已經對他們的想法之後

1]許多開發者,包括我在內,通過重新啓動來解決第一個問題設備。

2]對於第二個問題,由於在錄製「確定」時調用「已購買」或「已恢復」回調,因此產品本身可用。

希望它有幫助!

相關問題