
嗨,Unity 開發者,你是否也曾深陷這樣的煩惱:
- Unity 沒提供伺服器端驗證,得自己搞?
- 是不是常因為混淆沙盒/正式環境而被蘋果或 Google 拒收?
- 交易 token 什麼時候失效?為啥驗證不過又吐錯?
- 各 store 收據格式差異大,寫死格式又怕維護麻煩?
- 訂單驗證失敗或掉單
- 被黑訂單偽造
別怕,這些問題不是只有你一個人有,我們一起輕鬆聊聊痛點。
1. Unity 沒提供伺服器端驗證,得自己搞?
Unity 官方只提供 客戶端驗證(local validation),但這種方式容易被破解或偽造,因此不夠安全;至於更安全的伺服器端驗證,Unity 沒有內建支持,你得自己寫或引入第三方方案,例如 Nobuyori Takahashi 的 IAP 專案 Unity Documentation+1。
痛點:得額外打包伺服器功能,還可能花大錢請外部服務代勞。
2. 是不是常因為混淆沙盒/正式環境而被蘋果或 Google 拒收?
很多開發者反映:「Sandbox 收據用在 Production 環境會爆錯誤」,搞得驗證過不去。但其實這種錯誤可避免,只要根據錯誤提示切到測試環境。 Unity Discussions
痛點:驗證流程切換不明確,容易弄錯環境導致排錯困難。
3. 交易 token 什麼時候失效?為啥驗證不過又吐錯?
在 Android 上,開發者常遇到 “purchase token 已不再有效” 的問題,有時驗證失敗但其實是正常流程。還有可能因更新套件或流程重複提交導致 “同一筆交易重複驗證” 的情況 Unity Discussions+1。
痛點:伺服器端邏輯要能反噴假錯誤、避免重試造成重複兌換,開發成本不小。
4. 各 store 收據格式差異大,寫死格式又怕維護麻煩?
Apple、Google 的收據格式和流程大不同,Unity 的 CrossPlatformValidator
可以驗證簽名和 bundle ID,但你必須準備各平台的金鑰,同時考量沙盒環境、實體交易環境差異 Unity Documentation。
痛點:跨平台驗證流程多,容易搞混各平台專屬欄位,導入麻煩。
5. 訂單驗證失敗或掉單
有時消費者已付款,但訂單在伺服器端沒被驗證到,原因可能為用戶網路不穩或是用戶關掉遊戲, 再來是後台出問題,甚至常常連收據都查不到,造成用戶流失。
痛點:難以保證訂單不失敗或掉單,造成用戶流失。
6. 被黑訂單偽造
客戶端驗證容易被假收據方式攻破,通常會搭配遊戲後台驗證訂單收據。但是黑客也會偽造收據訂單和訂單號碼傳給遊戲後台驗證。如果遊戲伺服器沒有搭配第三方的服務 像是APPLE或是GOOGLE PLAY的API來驗證收據和檢查訂單ID的正確和唯一,也是容易會被功破,造成遊戲收入的減少。
痛點:訂單被偽造,造成遊戲收入的減少。
小結:Unity + 伺服器端驗證究竟哪裡最痛?

根據您的寶貴意見,我們將提供最佳的解決方案,請花點時間寫一下問卷調查,謝謝。