這個主題說明玩家在 Google Play 應用程式中以 Play 點數購買應用程式內商品後,您應如何偵測並在遊戲中提供這些商品。
使用者在 Google Play 應用程式中用 Play 點數兌換應用程式內產品後,產品就會立即出現在遊戲中。以下是使用者如何透過 Play 點數購買商品。
| 1. 按一下「Play 點數」。 | 1. 點選「使用」分頁標籤,即可查看商品。 | 2. 選取所需商品並點選「使用點數」,即可完成購買。 | 3. 接收產品。 |
|
|
|
|
在本例中,在購買產品時遊戲並未執行。即便裝置上尚未安裝遊戲,使用者也能透過 Play 點數兌換產品。因此,您必須設計遊戲,處理遊戲內外的應用程式內商品交付。
事前準備
您必須建立產品和 Play 點數促銷活動,才能偵測並提供應用程式內產品。
提交規範
透過 Play 點數促銷活動在遊戲中提交應用程式內產品時,您必須遵守本節的規定。
提交時間
當玩家為應用程式內產品兌換 Play 點數時,請使用 Google Play 帳款服務程式庫及時提交產品。
提交訊息
使用者在遊戲外購買應用程式內商品並返回遊戲後,您必須顯示確認訊息,告知商品已在遊戲中順利授予使用者。此訊息應以彈出式對話方塊或遊戲內訊息的方式顯示。且您不應該要求使用者必須執行任何額外步驟,才能接收兌換的項目。
所需訊息格式如下:
清楚指出使用者已收到兌換項目。
清楚提及產目名稱並提及「Play 點數」,確保使用者能夠區分 Play 點數和他們收到的內容。
如果您提供了多種面額的類似項目,項目名稱中也應包括正確的面額。
彈出式對話方塊、訊息或遊戲內通知應持續顯示,直到使用者點選「繼續」或「確定」等確認訊息為止。這類內容不應該有取消按鈕,原因是這種訊息的用意在於通知使用者已在遊戲中收到兌換的項目。如果沒有確認按鈕,那麼這則訊息必須在畫面上顯示至少 3 秒,確保使用者瞭解已收到兌換的項目。
以下是訊息範例:
「收到的產品!您已使用 Play 點數兌換 100 顆寶石。繼續。」
使用者應可看到相關動畫或確認用的視覺效果,象徵遊戲代幣的餘額增加。如果兌換產品是永久性或消耗性的應用程式內產品,則應將使用者導向遊戲中解鎖該產品的位置,或是可取得該產品的地方。
偵測遊戲以外的項目
如果遊戲使用 Google Play 結帳系統,請參閱「偵測及處理購買交易」,瞭解如何偵測在遊戲外收到的應用程式內商品。
顯示提交確認資訊
使用者兌換 Play 點數並收到交換產品時,會希望遊戲顯示遊戲內訊息,或使用某種通知來告知遊戲已確實收到點數並處理產品。請參閱「通知使用者」一節,瞭解如何確認購買交易成功。
特定遊戲引擎的更新內容
以下是關於特定遊戲引擎的注意事項:
如果您的遊戲是以 Unity 建構,建議您驗證目前使用的應用程式內購實作項目是否已支援 Play 點數促銷活動。
如果您的遊戲是以 Cocos2d-x 或 Unreal Engine (C/C++) 建構,您很可能需要編寫 JNI 程式碼,從 C/C++ 程式碼呼叫 Java API。
伺服器端最佳做法
本節包含用於 Play 點數促銷活動的伺服器端最佳做法:
如果您在伺服器中呼叫
Purchases.products: get,請根據productId值,檢查是否需要分別處理 Play 獎勵兌換產品和其他應用程式內產品。如果您在伺服器中使用
Inappproducts: list,請確認您是否需要透過productId值將 Play 獎勵兌換產品與其他應用程式內產品分開。請查看下列最佳做法,確認是否需要進行其他變更:
- 參考資料:
- 實作伺服器端簽名驗證。
- 確認
purchaseToken和orderId的值不得重複,且未曾使用過。
疑難排解
本節提供可能導致客戶查詢情境的相關建議。
多用戶帳戶
如果使用者在裝置上設有多個 Google 帳戶,並在錯誤的帳戶兌換 Play 點數,Google 無法將這些產品轉移至其他帳戶。同理,您的應用程式無法呼叫 getPurchases() 方法轉移產品。在這種情況下,請考慮透過客戶服務作業,手動提供應用程式內產品。
延遲或遺失產品
如果玩家遇到延遲或遺漏的獎勵產品,請參閱 Google Play 說明文件的應用程式內購疑難排解指南。