Unity 嵌入 app 內購付費 (In-App Purchasing) – Server-Side 驗證篇

前篇提到 Unity IAP 收據的兩種驗證方式: 本地(Client-side), 遠程(Server-side); 也介紹以 Unity IAP 提供的工具與 CrossPlatformValidator 類別執行本地驗證, 但對於提供遠程服務的 app 有更好的選擇: 遠程驗證.

本篇將介紹且實作 Google Play 與 App Store 兩平台的遠程收據驗證.
版本資訊:
Unity: 2019.2.14f
Unity IAP: 2.2.7

Unity IAP 的收據

Unity IAP 提供了 JSON 形式的收據:

NameDescription
Store描述來自哪個商店, GooglePlay 或 AppStore.
TransactionID由商店提供的交易訂單ID (唯一碼)
Payload收據詳細內容, 因各商店而異. (遠程驗證所需資料存放這)
繼續閱讀

Unity 嵌入 app 內購付費 (In-App Purchasing) – Client-Side 驗證篇

內購付費作為大部分免費 app 主要的收如來源, 商品收據驗證尤為重要, 可以幫助開發方防止惡性用戶或者不預期程式錯誤取得未購買的商品. 較好的做法是在取得購買收據後且分發商品之前進行收據驗證. 主要有兩種驗證方式: 本地 (Client-side), 遠程 (Server-side).

本地 (Client-side):
於購買的裝置上進行驗證, 不需要將收據資料送往其他端口. 這是 Unity IAP 有提供的功能. 雖然 Unity IAP 提供本地驗證, 但本地驗證仍是容易遭到竄改, 最好還是把核心驗證交由遠程的伺服器驗證.

遠程 (Server-side):
將購買的收據下載至裝置上, 隨後發送至驗證伺服器, 驗證成功即發送對應商品獎勵. 目前 Unity IAP 尚未提供. 常見的平台 Google PlayApple 有更詳細的文件提供開發者進行更安全的遠程驗證.

繼續閱讀

Unity 嵌入 app 內購付費 (In-App Purchasing) – 安裝篇

Unity 作為一個跨平台遊戲開發工具, 也少不了提供整合平台的內購付費嵌入服務. 省去開發者需要逐一加入IAP的套件, 還要處理平台間彼此衝突的問題.

這次以常見的 Google Play 平台為例示範如何安裝 IAP 套件, 設定產品內購項目, 編寫付費流程範例, 以及測試.
以下為相關版本:
Unity: 2019.2.14f
Unity IAP: 2.2.7
Google Play Billing Library: v3

繼續閱讀

Unity 嵌入 Google Play 遊戲服務 (3)

目前市面上的應用程式, 很常使用社群帳號 (Google, Facebook, LINE, …) 授權獲取或更改資訊. 遊戲應用程式當然也會, 不僅能結合真實世界中的社群遊玩, 也讓玩家更方便玩遊戲不用一直新的記帳號密碼, 甚至還能結合金流, 功能越來越完善.

對跨平台開發引擎的 Unity 而言, 也常用到 Google Play, Apple 登入, 現在還有遊戲活動相關的功能 (排行榜, 成就, 關卡事件).

上篇中, 我們透過 GCP 專案建立了 OAuth 用戶端授權憑證, 也將憑證添加到 Play 遊戲服務連結中. 接下來, 我們需要讓 Android 應用程式能夠使用 Play 遊戲服務的相關功能.

繼續閱讀

Unity 嵌入 Google Play 遊戲服務 (2)

接續上一篇完成前置動作後, 我們有了 Google 開發者帳號, 建立了平台應用程式, 也再 Unity 專案中設定好 Android 平台參數, 生成 Keystore. 本篇可以開始串接 Google Play 遊戲服務了(終於

嘗試的過程稍微繁瑣, 尤其更換成新版 Google Play Console 介面後又跟以前的教程對不上. 但大同小異, 多試幾次就知道坑了.

繼續閱讀