Unity 作為一個跨平台遊戲開發工具, 也少不了提供整合平台的內購付費嵌入服務. 省去開發者需要逐一加入IAP的套件, 還要處理平台間彼此衝突的問題.
這次以常見的 Google Play 平台為例示範如何安裝 IAP 套件, 設定產品內購項目, 編寫付費流程範例, 以及測試.
以下為相關版本:
Unity: 2019.2.14f
Unity IAP: 2.2.7
Google Play Billing Library: v3
提醒一下, 若目標平台為 Google Play 須注意 2021/11 之後不再支援 v3 以前的 Billing Library.
詳細內容參考 Google Play 官方說明.
啟用 IN-APP PURCHASING 服務
內購付費被整合進 Unity Services 裡, 並結合 Analytics 服務. 因此, 啟用服務前先以 Unity Account 登入並開啟專案.
Window > General > Services 打開服務項目面板.
如果還未將 Unity 專案綁定 ProjectID, 會被要求創建或連結.


創建/連結好後, Services ervices 面板右上角 “Go to Dashboard" ashboard" 可以轉跳至頁面查看相關的專案設定.

接著~點選 In-App Purchasing > Enable


接著詢問該 App pp 是否專為 13歲以下孩童設計. 根據目標平台不同, 提供的家長監護也需要額外設定, 這裡暫且不處理, 直接不勾選繼續.

等待 Unity 設定並安裝 IN-APP PURCHASING 服務 …

安裝/匯入 IAP 套件
設定成功後便可匯入 IAP 套件. 目前 IAP 套件已能整合各種平台的內購付費, 不只 Google Play, App Store, 也有 Window Store, 小米 Game Play… 等.
點選 “Import"


點選 “Next >>"

如果沒有特定只要安裝哪個平台的內購套件, 直接選取 All > Import 即可. 當中也包含 Demo 用的場景/範例.

點選 “Close, and clean up … >>"

追蹤 Google Play In-App Billing 資料
IN-APP PURCHASING 面板下方選項可視需求輸入 Google Public Key (Base64 型態的公鑰), 向 Google Play 平台取得 Billing 分析資料.

Google Public Key 從 Google Play Console 選定應用程式 > 營利/營利設定 (Monetization setup) > onetization setup) > 授權 (Licensing)
這段字串複製貼上至 Unity > 點選 “Verify"

Demo 功能測試
確認無 Error 訊息後, 打開 Demo 場景並運行~


挑選一個測試用的購買項目 “$0.01″, 查看收據內容 “"


其他問題…
- Google Public Key 輸入到 Services > IN APP PURCHASING 後有可能會出現格式錯誤, 先嘗試確認 Analytics 有正常運作, 或重新打開 Unity project. https://forum.unity.com/threads/cant-verify-googleplay-license-key.570337/
- 匯入 Unity IAP Package 有機會發生 Reference 掉了的問題, 或是 UnityEngine.Purchasing 命名域不存在. 嘗試解除安裝/設定 (包含 unlink Unity Project), 或重新打開 Unity project.
參考
Unity IAP Setup – https://docs.unity3d.com/2019.4/Documentation/Manual/UnityIAPSettingUp.html
在〈Unity 嵌入 app 內購付費 (In-App Purchasing) – 安裝篇〉中有 1 則留言