在 Firefox OS 上建立付費 App

第一眼看到 Firefox OSFirefox Marketplace 時,會覺得與 Apple Store 或 Google Play Store 有些相似,但其中有個關鍵差異:Firefox Marketplace 不會要求你必須和 Mozilla,或和自己的 Firefox OS 手機綁定。透過 Receipt 協議,只要是能在任何 Open Web 裝置上運作的 Web App,都能在 Marketplace 上銷售只要建構出收據格式,任何不屬於 Mozilla Marketplace 的網路商店,亦可在 Firefox OS 上銷售 App。而使用者同樣可順暢執行該付費 App,不會感到任何差異。

理論上,只要其他裝置也支援此 Receipt 協議,使用者的任一款 App 僅需付費一次,即可在任何裝置上執行該 App。這裡當然也出現雞生蛋、蛋生雞的問題。Mozilla  希望擔任雞蛋的角色,能確實拓展這個「收據」的概念,並透過協議的方式將之落實。Mozilla 亦積極邀請廠商共襄盛舉而合作此收據驗證,讓付費 App 能夠達到更高的可攜性與網路化。

App 開發者觀點

所有付費 App 都必須驗證自己的收據。如果你是 App 開發者,並想透過 Firefox OS 上銷售自己的 App,則這篇文章可協助你著手建構收據驗證。你也可能想建構相容的 Web Runtime (WRT) 或線上商城,那這篇文章應該也有幫助。

屬於 JavaScript API 之一的 navigator.mozApps,可將裝置收據揭露給 App。最簡單的收據驗證方式,就是納入用戶端的函式庫 (如 receiptverifier.js),並使用收據中托管的驗證服務 URL。收據驗證器的相關文件可提供較多細節。其實在啟動此 App 時,就如同呼叫此 JavaScript 程式碼同樣簡單:

這樣就可以了!透過這個高階捷徑,一旦收據遺失或無效,你的 App 畫面隨即會跳出提示框。驗證器相關文件亦將說明初階驗證的建構方式。

這裡提供更完整的例子。你可檢查 Private Yacht (我們常用此 App 進行測試) 中的程式碼。此 App 可透過 receiptverifier.js 函式庫而檢查用戶端,亦可透過 node.js 檢查伺服端。我們也有 Python 函式庫 (另有特別用於 Django 的函式庫),可在伺服端上驗證收據。

此機制是如何運作的呢?各組收據均混搭了 JSON Web Tokens。其屬性之一就是提供鏈結以銜接托管的驗證服務,並進一步檢查該收據。你也可以選擇離線驗證收據,但另需定期同步金鑰。另還有像退款與補發處理等的細節問題,目前尚未完整支援離線驗證功能。

在 App manifest 檔案中的 installs_allowed_from 參數,將載明所有商店的 URL。而依預設值,系統將僅允許來自於這些商店之一的收據。若你是開發者,就必須與所有商城建立明確的付款關係,也因此可自己選擇 App 的販售商城平台;就如同為自己的 App 建立收據清單。由於客戶端 JavaScript 的條件較為寬鬆,因此可驗證伺服器端 (也就是在自己的 App 伺服器上) 的收據,進而更嚴格控管此清單。

Firefox Marketplace 的付費 App 機制尚未完備,但也不會拖得太久。如果你現在就先把收據驗證器整合到自己的 App 上,則一旦提交流程可支援付款作業時,就能立刻上線。

防止詐欺機制

Mozilla 針對開放 Web App 的願景之一,就是讓任一方均可於網路上販售 App。然而,想不致於過度集中收據,又要同時在沒有 DRM 的情況下保護 App 資產,確實有其難度。目前發現如 DNS 代理伺服器 (Proxy) 的用戶端受過攻擊,藉以存取付費 App。但在使用 CSPCORSHSTS (僅列舉其中 3 個解決方案) 之後,該情況已經有所改善。而今天在 iOS/Android 上的付費 App 並沒有太大的差異。這個開放性的問題,其實有助於達到更高效益的商城清單。同時在更多商店與開發人員的參與之下,Mozilla 希望能進一步強化該系統。另說到簽章的封裝式 App,雖可多提供一層資產保護機制,但需要更完備的設計以解決許可權限問題。

最後同樣想提醒你:如果遇到任何問題,請隨時反應給我們!如果是 App 平台的錯誤,可選擇 Core (component: DOM: Apps) 或選擇 Marketplace (component: Payments/Refunds)。

 

 

英文原文:https://hacks.mozilla.org/2013/02/building-a-paid-app-for-firefox-os/

 

 

 

 

您可能也會喜歡

目前找不到相關文章

共 1 則讀者回應

  1. 參照: Firefox OS 裝置正式推出! | 訊息中心 | Mozilla Taiwan

對此文章發表回應

你的電子郵件位址並不會被公開。 必要欄位標記為 *