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 有更詳細的文件提供開發者進行更安全的遠程驗證.

繼續閱讀