我的應用程序提供應用程序內購買非消費類型。該應用程序已登錄設施。是否有可能根據登錄用戶購買我的應用程序?有什麼方法可以知道通過哪個iTunes帳戶進行的購買? - iOS
我知道這聽起來很尷尬。讓我指定問題。
設備在iTunes商店中已有登錄用戶。那時,當我的應用首次安裝到設備上時,任何用戶都可以使用憑證登錄到我的應用。考慮一下,他做了一些購買並從應用程序註銷。現在,另一個用戶登錄到應用程序,並且無法在應用程序購買後使用之前用戶可用的設施。但是,正如您知道基於iTunes商店帳戶購買非消費品產品(每個帳戶只能購買一種非消費品)。我試圖通過以下方式..
將用戶ID存儲到iCloud,但我不知道購買的是哪個iTunes帳戶。因此,我無法顯示正確的消息「您應該使用不同的iTunes帳戶登錄才能購買」。
在Android中,通過應用內結算v3,可以將
developer payload
字符串與購買請求一起發送。當對該購買進行查詢時,該字符串也會返回。所以,這可以用來識別進行購買的用戶。 iOS中有類似的東西嗎?
太棒了!爲什麼我以前不知道這個?後續評論和問題。註釋:您必須使用SKMutablePayment訪問applicationUsername(否則,該屬性爲只讀)。問題:考慮以下情況。假設Apple ID X和Apple ID Y都用於在您的應用中進行購買。並且您爲Apple ID X和Y(稱爲applicationUsername,U)使用相同的applicationUsername創建SKMutablePayments,然後使用U調用restoreCompletedTransactionsWithApplicationUsername。這將檢索使用Apple ID X和Y進行的購買嗎? – 2015-03-26 15:28:31
@ChrisPrince這是關於SKMutablePayment的一個好點。我已經更新了我的答案。至於你的問題,我會想象調用'restoreCompletedTransactionsWithApplicationUsername:'只會返回當前iTunes用戶的購買。但是,您應該防止第二個iTunes用戶在第一種情況下以相同的應用程序用戶名購買。因此,這就是爲什麼你需要跟蹤你自己的服務器上的購買。 – DeepFriedTwinkie 2015-03-26 15:34:45
這將如何工作?你怎麼能阻止第二個iTunes用戶在相同的應用程序用戶名下購買? – 2015-03-26 15:41:32