Google Play應用內(nèi)付費知識點

來源: CSDN
作者:索拉卡暴擊
時間:2020-09-24
17579
本文分享Google Play應用內(nèi)付費的一些術(shù)語。

pexels-pixabay-261909.jpg

Google Play應用內(nèi)付費的一些術(shù)語

1.應用與Google play進行IPC通信,負責購買請求和結(jié)果響應

2.要完成應用內(nèi)購買請求,Google Play應用必須能夠通過網(wǎng)絡(luò)訪問Google Play服務器

3.使用Google Play Developer Console定義商品,包括商品類型、SKU、價格、說明,等等

4.托管和未托管,托管是指谷歌負責記錄商品的購買情況,并可查詢,即使卸載/更換設(shè)備;在版本3中,所有應用內(nèi)商品均是托管的

5.消耗托管商品,托管商品被購買,消耗商品是需要給谷歌服務器發(fā)送消耗請求,才能進行下次購買

6.訂閱,按年或按月定期向用戶收費,與應用內(nèi)商品不同,訂閱無法消耗。

7.非消耗型和消耗型應用內(nèi)商品

購買商品

購買請求的基本順序。

Version 3 API中的典型購買流程如下所示:

1.您的應用向Google Play發(fā)送isBillingSupported請求,以確定您當前使用的In-app Billing API目標版本是否受支持。

2.當您的應用啟動或用戶登錄時,最好向Google Play進行查詢,確定該用戶擁有哪些商品。要查詢用戶的應用內(nèi)購買,請發(fā)送getPurchases請求。如果請求成功,Google Play會返回一個Bundle,其中包含所購商品的商品ID列表、各項購買詳情的列表以及購買簽名的列表。

3.通常情況下,您需要將可供購買的商品通知用戶。要查詢您在Google Play中定義的應用內(nèi)商品的詳細信息,應用可以發(fā)送getSkuDetails請求。您必須在查詢請求中指定商品ID列表。如果該請求成功,Google Play會返回一個包含產(chǎn)品詳情(包括商品的價格、標題、說明和購買類型)的Bundle。

4.如果用戶還未擁有某種應用內(nèi)商品,您可以提示購買。為了發(fā)起購買請求,您的應用會發(fā)送getBuyIntent請求,指定要購買商品的商品ID以及其他參數(shù)。當您在Developer Console中創(chuàng)建新的應用內(nèi)商品時,應記錄其商品ID。

Google Play返回的Bundle中包含PendingIntent,您的應用可用它來啟動購買結(jié)賬UI。

您的應用通過調(diào)用startIntentSenderForResult方法啟動待定Intent。

結(jié)賬流程結(jié)束后(即用戶成功購買商品或取消購買),Google Play會向您的onActivityResult方法發(fā)送響應Intent。onActivityResult的結(jié)果代碼中有一個代碼將用于表明購買是成功還是已取消。響應Intent中包含所購商品的相關(guān)信息,包括Google Play為了對此次購買交易進行唯一標識而生成的purchaseToken字符串。Intent中還包含使用您的開發(fā)者私鑰簽署的購買簽名。

要詳細了解Version 3 API的調(diào)用和服務器響應,請參閱應用內(nèi)購買結(jié)算參考。

消耗應用內(nèi)商品

您可以使用消耗機制跟蹤用戶對應用內(nèi)商品的所有權(quán)。

在版本3中,所有應用內(nèi)商品均是托管的。這意味著用戶對所購全部應用內(nèi)商品的所有權(quán)均由Google Play進行維護,您的應用可以在需要時查詢用戶的購買信息。當用戶成功購買應用內(nèi)商品后,此次購買就會記錄在Google Play中。應用內(nèi)商品一經(jīng)購買,就會被視為“被擁有”。狀態(tài)為“被擁有”的應用內(nèi)商品無法再通過Google Play購買。您必須對“被擁有”的應用內(nèi)商品發(fā)送消耗請求,然后Google Play才能允許再次購買。消耗應用內(nèi)商品會將商品切換回“未被擁有”狀態(tài),并舍棄之前的購買數(shù)據(jù)。

為了檢索用戶所擁有的商品列表,您的應用會向Google Play發(fā)送getPurchases調(diào)用。您的應用可以通過發(fā)送consumePurchase調(diào)用發(fā)起消耗請求。在請求參數(shù)中,您必須指定應用內(nèi)商品的唯一purchaseToken字符串,此字符串在商品售出時由Google Play指定。Google Play會返回一個狀態(tài)代碼,指明此次消耗是否已成功記錄。

非消耗型和消耗型應用內(nèi)商品

您需要決定是要將您的應用內(nèi)商品作為非消耗型商品還是消耗型商品進行處理。

非消耗型商品

通常情況下,對于在應用內(nèi)購買一次就能永久使用的應用內(nèi)商品,您無需實現(xiàn)消耗。這些商品在購買后將永久與用戶的Google帳戶相關(guān)聯(lián)。高級版升級和關(guān)卡包就屬于非消耗型應用內(nèi)商品。

消耗型商品

相反,對于可多次購買的商品,您可以實現(xiàn)消耗。通常情況下,這類商品提供某些臨時效果。例如,用戶在游戲中的角色可以從自己的庫存中獲得生命值或額外的金幣。在您的應用中分配所購商品的收益或效果稱為配置應用內(nèi)商品。您負責控制和跟蹤如何向用戶配置應用內(nèi)商品。

重要說明:您必須先向Google Play發(fā)送消耗請求,在收到表明此次消耗已成功記錄的響應之后,才能在應用中配置消耗型應用內(nèi)商品。

下面是購買消耗型應用內(nèi)商品的基本流程:

1.調(diào)用getBuyIntent啟動購買流程。

2.從Google Play接收表明購買是否成功完成的響應Bundle。

3.如果購買成功,則通過調(diào)用consumePurchase消耗購買。

4.從Google Play接收表明消耗是否成功完成的響應代碼。

5.如果消耗成功,則在您的應用中配置商品。

之后,當用戶啟動或登錄到您的應用時,您應檢查該用戶是否擁有任何尚未消耗的消耗型應用內(nèi)商品;如果有,請務必消耗并配置這些商品。如果您在應用中實現(xiàn)消耗型應用內(nèi)商品,則可以采用下面推薦的應用啟動流程:

1.發(fā)送getPurchases請求,查詢此用戶擁有的應用內(nèi)商品。

2.如果有任何消耗型應用內(nèi)商品,請通過調(diào)用consumePurchase消耗這些商品。必須執(zhí)行這步操作,因為應用雖然可能已完成此消耗型商品的購買訂單,但在其發(fā)送消耗請求之前仍有可能已停止運行或斷開連接。

3.從Google Play接收表明消耗是否成功完成的響應代碼。

4.如果消耗成功,則在您的應用中配置商品。

個人結(jié)論:購買后需要立即消費?

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/u011484134/article/details/80918878

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于CSDN,本站不擁有所有權(quán),不承擔相關(guān)法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多