2010-03-16 22 views
3

我們試圖實現與應用程序內購買我們的應用程序訂閱服務。問題是我們的服務在過去的一年中不需要用戶帳戶。用戶只需使用此服務並顯示廣告。我們想給他們一個訂閱,在那裏他們可以買3個月的廣告去除廣告。是否有可能通過應用內purhcase將訂閱綁定到iTunes帳戶?

這怎麼辦?我們必須使其成爲 消耗品,因爲它是訂閱。但我們不知道訂閱什麼時候結束。

  • 我們無法保存狀態本地 因爲用戶可能重新安裝應用
  • 我們不能在服務器上保存的狀態,因爲有時用戶更改設備
  • 其綁定到他們的設備我們沒有用戶帳戶來綁定訂閱,我們不想引入破壞體驗的用戶帳戶系統。

是否有關聯與他們的iTunes帳戶購買的某種方式?這樣,當他們重新安裝或更換設備時,它會隨身攜帶嗎?

+0

您的用戶多長時間在3個月的時間內切換設備?可能不是那麼經常...也許只是咬緊牙關,並通過電子郵件處理支持請求 – slf 2010-03-16 16:03:09

回答

1

怎麼了鏈接到他們的Facebook或Twitter帳戶?然後,您將「創建帳戶」變成了一種社交網絡功能。

編輯:

你所尋找的是最有可能保存在系統範圍內的鑰匙扣。不幸的是,最後一次檢查時,系統級鑰匙串沒有開發者訪問權限,但我可能是錯的。這也可能是值得一提的,你可以操縱自己的訪問組,看到更多的對GenericKeychain例子。

-1

你的問題很奇怪,因爲購買被關聯到iTunes的用戶帳戶。 讓我們假設用戶從他的手機中刪除應用程序並重新安裝它,他能夠找回所有訂閱(存儲在蘋果方面在他的iTunes帳戶中)。

這種機制被描述爲蘋果在文件中「恢復交易」(這是由應用程序來支持和實現它):http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html#//apple_ref/doc/uid/TP40008267-CH3-SW2

您可以查詢從iTunes的帳戶用戶從你的應用程序,並詢問「目前從這個用戶購買的產品是什麼?」

然後,在恢復事務時,您將返回對所有SKPaymentTransaction的引用,您可以在其中查詢transactionDate(作爲屬性)。這會給你的信息 WHEN用戶已經買了你的耗材。

從中還可以得到一個已使用aPaymentTransaction.payment.productIdentifier

如果您知道這個產品標識是3個月的訂閱購買的產品,你可以比較其交易日期和當前日期和檢查這是低於3個月或沒有。

+0

從Apple文檔 - 「訂購和消費品不會由Store Kit自動恢復。要恢復這些產品,您必須記錄事務在您購買時在您自己的服務器上,並提供您自己的機制來將這些交易恢復到用戶的設備上。「 你的方法不能使用可消耗。如果你使它成爲一種非消耗品,那麼在它到期後他們將無法購買另外3種方法。 – erotsppa 2010-03-30 22:49:15

+0

:/我不知道,謝謝你突出顯示。這使得易耗品情況複雜化....這意味着,當你購買與應用程序購買相同的易耗品時,你會不會從蘋果方獲得幾個SKPaymentTransaction實例?這真的好奇:( – yonel 2010-03-31 08:12:32

0

您可以嘗試使用它來訪問具有appleId關鍵字的iTunesMetadata.plist,該關鍵字包含用於下載應用程序的applestore id。

[NSHomeDirectory() stringByAppendingPathComponent:@"iTunesMetadata.plist"] 

當然這可能會被認爲是無證的,Apple會在未來的更新中解決這個問題,或者只是拒絕你的應用程序。

相關問題