2013-04-08 84 views
3

我想爲將通過Google Play銷售的應用設置基於訂閱的結算。是否有可能向同一用戶銷售相同的訂閱,但使用不同的設備?所以用戶試圖使用該應用程序的每個設備都需要一個有效訂閱?通過Google Play購買每設備訂閱

我在想我可以將設備ID和用戶ID存儲在我自己的服務器上並以此方式對其進行身份驗證,但是用戶無法多次購買相同的訂購是否正確?那麼,如果用戶希望購買多個「許可證」,我需要一個基本相同的訂閱池嗎? Google Play結算可以在本地處理這種情況嗎?

感謝

+0

我不這麼認爲。如果你想設置它,你必須在市場之外處理賬單。並且同一用戶(Gmail地址)無法在Android電子市場上多次購買同一件東西是正確的。此外,如果您使用設備ID作爲您的標識符,請注意設備出廠重置時它可能會更改。如果您打算繼續使用此結算方案,請準備好處理合法付款且被系統鎖定的人員。 – FoamyGuy 2013-04-08 20:27:09

+2

另請注意,如果您選擇此商業模式,很多人會使用您的競爭對手的產品。 – Soriyyx 2013-04-08 20:31:06

+1

@Soriyyx取決於所銷售的應用程序/服務種類。肯定有應用程序/服務,每設備成本絕對有意義。你傾向於在盒子裏面思考。我假設你是一個新手程序員。 – AndroidDev 2013-08-03 15:47:03

回答

1

您需要在應用內購買來實現,就像對其他任何應用程序項目。

確保在開發控制檯中創建項目時,它不受管理,因爲託管項目只能在每個帳戶中購買一次。

當您收到購買您的非託管項目的確認信息時,請將詳細信息(如唯一ID)發送到您的服務器並將它們存儲在那裏。

現在,只要您的應用程序啓動,請檢查您的服務器是否爲授權設備。如果不是,請提示用戶購買。如果是這樣,讓他們繼續到應用程序。

這隻適用於需要一次性付款的情況。如果您需要訂閱,那麼您將不得不多次支付一次性付款,因爲訂閱就像管理的購買,並且只能由任何帳戶支付一次。

3

從谷歌的文檔最初似乎使這不可能實現,但更深的挖掘,我發現下面的...

在谷歌播放API 2.0版本,你可以創造什麼被稱爲「非託管」產品允許用戶多次購買相同的東西的類型。雖然Gooogle開發者控制檯明確支持這一點,但API 3.0似乎已經部分消失。我認爲它仍然受到支持,因爲使用2.0 API的應用程序仍然存在,Google不能放棄對此的支持。

然而,在3.0中,「非託管」的產品類型在API文檔列出但該文檔說明有關使多次購買的同一產品類型(一次性購買或訂閱)以下:

如果您使用的是版本3 API,則還可以在應用程序內使用受管項目 。您通常會執行消耗 可多次購買的物品(例如遊戲幣, 燃油或魔法)。一旦購買,通過向Google Play發送消費 請求,管理項目不能再次購買,直到您消費該項目。要了解更多有關應用產品消費, 看到消耗部件

http://developer.android.com/google/play/billing/api.html#consume

重要:訂閱不能被消耗,這意味着,如果你希望客戶定期更新他們的執照,你將不得不聯繫他們並告訴他們他們必須再次購買許可證。如果您的服務需要定期更新,則這是一個缺點。

要獲得您所需的內容,您需要一臺後端服務器來處理設備註冊以及應用在購買時從Google Play接收的存儲令牌。當用戶想要購買來自其他設備的許可證,功能,服務(或任何其他設備)時,其他設備必須首先通過稱爲「消費」的過程,通過Google Play發佈產品的「所有權」。它會或多或少地這樣工作:

  1. 第一臺設備進行購買並從Google Play接收purchaseToken 字符串。
  2. purchaseToken與設備ID一起從應用程序發送到您的服務器並進行存儲。
  3. 用戶轉到第二個設備,並且想要爲該設備購買許可證。該應用首先需要訪問您的服務器並獲取purchaseToken(即第一個設備上傳的內容),然後使用consumerPurchase調用Google Play,從而釋放用戶對該產品的「所有權」。
  4. 然後,應用程序從Google Play購買新許可證(或其他),獲取新的purchaseToken並將其與設備ID一起存儲在服務器上。

本質上,Google Play不會跟蹤哪個設備擁有該產品。它只會將Google帳戶與購買的產品關聯起來。這取決於您的應用程序和服務器來管理許可證。

我看到您需要解決一個潛在問題。如果由於某種原因,應用程序無法將purchaseToken發送回服務器(服務器關閉,用戶放棄他們的設備並破壞設備,應用程序在將令牌保存在設備上之前崩潰等),那麼您可能無法知道用戶是否爲該服務付費。谷歌確實提供了一個服務器API,可讓您的後端服務器查詢Google服務器上的Google Play,以獲取有關購買的信息,但我並不熟悉它或其侷限性。

+0

很酷的答案! +1 – XXX 2016-02-02 20:40:16

相關問題