A PaymentManager is an additional attribute to the ServiceWorker specification, which allows a piece of code to run/listen in background in your browser, even after the tab is closed.
Defines what all different instruments a user might have registered against this method (Multiple wallets, bank accounts, cards etc).
PaymentInstrument {
// Visa Card ending in **1214name;
// Visa icon
icons;
// PMI
method;
// Can be used torestrict card usageby network for eg.
capabilities;
}
PaymentHandler API
A payment handler listens on the PaymentRequestEvent, and returns a PaymentHandlerResponse once done.
Payment Handler: The serviceworker installed when you first visited your bank website. Marked as usable across all websites.
Payment Request: A browser redirect to a https://pay.icicibank.com with all required params for the payment. A few extra checks (enough balance etc) can be done by the handler before the request is complete.
Payment Instrument: Each bank account with ICICI becomes a separate instrument.
In the Wild
Google Pay is already using Payments API to support cross-platform Payments, by declaring a new "https://google.com/pay" payment method.
Facebook implements it within their in-app browser for the Mobile SDK.
The "Payment Handler" for most of the above implementations is a close browser<>payment app coupling, with an application such as Samsung/Apple/Google Pay.
Current Status
All major browser implement Payment Request API to various degrees, primarily for the basic-card usecase.
Payment Handler registration is only supported in Chrome.
Future Scope
Installing a payment app is clunky, maybe we can just install the service-worker directly.
Lots of work happening towards standardization of non-card payments (such as SEPA, Tokenized Cards, credit-transfer).
Getting the drafts published as a W3C recommendation
Talk about all the innovations that have happened over the last 2 decades because of the internet and how none of them relate to money transfer (except for bitcoin)
W3C is the internet-standards-body for the World Wide Web. You've likely used lots of their standards
Bitcoin exists, and Amazon has been around for more than 2 decades, why do we need web payments?
There are 4 published standards (all in draft stage) and a few more auxiliary publications from W3C's Web Payments Working Group
: standardizes an API to allow merchants (i.e., Web sites selling physical or digital goods) to utilize one or more payment methods with minimal integration. User agents (e.g., browsers) facilitate the payment flow between merchant and user, mediating the user experience and providing consistency between different merchants and providers.
: defines the validation and (where applicable) registration of identifiers used for matching purposes by other W3C payments specifications.
:defines capabilities that enable Web applications to handle payment requests. The specification defines how Web-based payment handlers register their capabilities with the user agent, how the user agent communicates with them, and what information is exchanged. Note: Based on experience with the Payment Handler API, the Working Group is discussing creation of a new UI component where payments, authentication, and other activities can occur. This functionality would generalize some of the current payment-specific functionality of Payment Handler API.
: allows the curators of a defined payment method or owners of a proprietary payment method to authorize (via a manifest file) which payment handlers may be used to fulfill the payment method. The scope of this work extends to all types of payment handlers, including native mobile apps and Web apps.
: standardizes an API to allow merchants (i.e., Web sites selling physical or digital goods) to utilize one or more payment methods with minimal integration. User agents (e.g., browsers) facilitate the payment flow between merchant and user, mediating the user experience and providing consistency between different merchants and providers.
:defines capabilities that enable Web applications to handle payment requests. The specification defines how Web-based payment handlers register their capabilities with the user agent, how the user agent communicates with them, and what information is exchanged. Note: Based on experience with the Payment Handler API, the Working Group is discussing creation of a new UI component where payments, authentication, and other activities can occur. This functionality would generalize some of the current payment-specific functionality of Payment Handler API.
: allows the curators of a defined payment method or owners of a proprietary payment method to authorize (via a manifest file) which payment handlers may be used to fulfill the payment method. The scope of this work extends to all types of payment handlers, including native mobile apps and Web apps.
While removing propreitary stuff isn't a goal for the specs, it is a byproduct.
We'll be going bottomsup, and looking at the smallest building blocks first.
You want a way to ensure that multiple payment processors work against the same initial payment request. Hence a need to standardize these identifiers.
A payment method should be "discoverable", and that implies a manifest of some sort where a user-agent can find more details about the payment method