## 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
[email protected]
https://lists.mozilla.org/listinfo/dev-platform