2016-11-07 70 views
4

我們在iOS應用中提供可自動更新的應用內購買訂閱。我們現在想爲我們的訂閱添加一個免費試用期,這已經很好了。 在我們的應用程序的「商店視圖」中,我們顯示產品信息以及一個按鈕「現在測試免費」。iOS:如果用戶仍有資格獲得應用內購買訂閱的免費試用版,我如何知道?

但是,如果用戶訂閱,享受一個不錯的免費月,(也許支付更多),然後取消,她將能夠再次看到我們的「店鋪視圖」。現在,Apple確保同一App Store用戶不會再次獲得免費試用,這是件好事。但這就是爲什麼我們也不想要求用戶在這種情況下「現在測試免費」,而是「現在訂閱」。

所以我的問題是:是否有辦法告訴(用戶實際購買之前),如果他仍然有資格免費試用?

我們可以查一下我們自己的用戶數據庫,如果用戶之前已經簽約,但當她與我們的應用程序重新註冊,她仍然會看到「測試現在免費」,但不會是可以的,因爲她的App Store帳戶已經用完了免費試用期。

回答

1

有兩個選項可以更改商店視圖中顯示的字符串。

1)服務器調用以檢查他們之前是否已訂閱。你說你已經有了這個值,所以你可以將它添加到你的用戶架構中(如果靈活的話),例如hasSubscribed,那麼你會在客戶端的用戶對象上擁有它,並且可以檢查是否顯示「test」或「subscribe」或者只是在啓動時將其拉出並將其存儲在內存中以用於顯示商店視圖。

2)如果您有客戶收據,請檢查以前是否購買過該特定訂閱。

+0

感謝您的回答!我們已經實施了您的第一個提案,並且它在大多數情況下都可以正常工作但是,仍然有一個角落的情況是用戶第二次註冊我們的服務(原因可能是欺詐或混亂),我們會顯示「測試」,因爲我們還不知道她,但她實際上不能再測試了,因爲她的蘋果賬戶以前已經用於試用。不過,我會研究你的選擇2),也許這可能是另一種安全機制。這將是偉大的,如果將有一個StoreKit API調用來簡單地獲取此信息... – Flo

+0

有一個字段在收據響應「is_trial_period」:「false」似乎與您正在尋找的相關。如果您在收據和用戶之間有鏈接,只需查看in_app數組中的某個對象是否將此字段設置爲true。它可能是無證的,所以要小心行事。 – jeh

相關問題