## Summary The Payment Request API allows web sites selling goods and services to utilize one or more payment methods through the browser. The browser then facilitates the payment flow between merchant and user.
Initial implementation is going to be limited to “basic card” payments, based on a wallet Firefox will manage… The Firefox folks will have UI mockups and further details about the wallet (and security aspects), as it's outside the scope of the Platform work (but we are working together on it as a team). At time of writing, the interface are limited to the following methods and event handlers. However, this is subject to change as the spec is still evolving (there are also attributes, but I’ve omitted them as they mostly reflect what goes into the constructor). New methods/attributes/events will be sent with a new intent to implement: ### interface `PaymentRequest` How a developer requests payment. - promise show() - request show payment panel. - promise abort() - request close payment panel, aborting the payment. - promise canMakeActivePayment()* - not in spec, proposed by Google. - Events (see PaymentRequestUpdateEvent): - onshippingaddresschange - onshippingoptionchange For discussion around canMakeActivePayment(), please see: https://github.com/w3c/browser-payment-api/pull/316 ### interface `PaymentResponse` The resulting response from the end-user. - promise complete() - let’s you know when the flow is done. ### interface `PaymentRequestUpdateEvent` - updateWith(Promise<PaymentDetails> d) - request an update be made to the payment panel with new payment details. ### interface `PaymentAddress` A serializable object that represents a physical address in the real world… trying to get this changed to a dictionary, as it's just a bunch of DOM Strings, and an array. ### Extension to IFRAMEs The API also extends the `HTMLIframeElement` interface by adding a new attribute: * allowPaymentRequest - defaults to false. Similar in behavior to `.allowFullScreen`. ## Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1318984 ## Link to standard https://w3c.github.io/browser-payment-api/ ## Platform coverage Desktop first, Android later. ## Estimated or target release: Sometime in 2017 - not sure yet. ## Preference behind which this will be implemented: dom.payments.enabled ## DevTools bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1318994 ## Do other browser engines implement this? ### Shipped Chrome for Android release 53. Blink-dev intent to ship: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/p1DYoxHlkKg https://www.chromestatus.com/feature/5639348045217792 ### Considering According to Microsoft’s Platform Status, the feature is “in development” in Edge. https://developer.microsoft.com/en-us/microsoft-edge/platform/status/webpaymentsapi/?q=payments ## Tests Initial tests have been taken from Chrome’s implementation. However, these have not yet been verified by us, nor merged into the the web platform tests. We intend for those to be merged, and for us to contribute additional tests there. https://github.com/w3c/web-platform-tests/pull/3441 Kind regards, Marcos _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform