Mozilla and navigator.mozPay() for Firefox OS

Hi all,
I am new to the list so please bear with me as I check out the archives and catch up with PaySwarm, etc.

I wanted to introduce myself (hello!) and the work I've been doing on payments at Mozilla. As you may know, Mozilla wants to disrupt the proprietary world of mobile apps by bringing open, standard, and soon-to-be-standard ways of building mobile apps. This effort is culminating in the release of Firefox OS, a mobile system based on Gecko. It will be shipping on phones very soon in Latin America and Europe and all development has been open from day one.

A critical part of this effort is making payments secure and easy on the mobile web. A user will already be on the phone so why not charge a payment to their bill? I've been involved in designing a web payment API from early lab prototypes up to now where we'll be shipping a payment API for use by any open web app running on Firefox OS (soon Android, then desktop, etc). This is navigator.mozPay() which you can read about in https://wiki.mozilla.org/WebAPI/WebPayment and also in https://wiki.mozilla.org/WebAPI/WebPaymentProvider The latter describes the server side of which Mozilla will ship an implementation, currently in progress at https://github.com/mozilla/webpay

But wait! I want to be ultra clear that this first version is not a *decentralized* payment API to facilitate trust between customers, merchants, and payment processors. At best, you could call it an open payment API where any whitelisted payment provider lets merchants (who have a pre-arranged relationship with that provider) sell goods to customers on the web. Only vendors who ship Firefox OS on their device can whitelist payment providers. It is not user editable.

Making the payment API fully decentralized was *very hard*. Mostly because setting up the trust part is tricky when money is involved. We instead focused on shipping something :) It is heavily based on Google Wallet's goog.payments.inapp.buy() and solves the "easier" problems like proving the intent of the merchant (yes, I want to sell this item for $X.XX), proving that payment was received (server to server postbacks), and minimizing spoofability in the browser UI. It does not attempt to provide distributable, decentralized receipts for purchased goods but we did address that problem with app receipts https://wiki.mozilla.org/Apps/WebApplicationReceipt

In the future, Mozilla is very interested in pursuing a decentralized payment model that works securely for all parties on the web and is quick and painless for users. Right now, anyone can participate as a payment provider on Firefox OS but they'd have to roll their own (like Stripe, PayPal, etc). It is in our interest to level the playing field for payments so that anyone on the web can participate in sending and receiving money for digital goods without rolling their own system.

I look forward to catching up on all the work already done by everyone here. Let me know if you have questions about navigator.mozPay().

Kumar

Received on Monday, 21 January 2013 09:24:22 UTC