From 3190404b7071c836f32bc77228a8ca985365225a Mon Sep 17 00:00:00 2001 From: Nemo Date: Sat, 2 May 2020 07:15:17 +0530 Subject: [PATCH] initial commit --- webpayments/ecosystem.png | Bin 0 -> 32824 bytes webpayments/index.html | 21 ++++ webpayments/index.md | 234 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 255 insertions(+) create mode 100644 webpayments/ecosystem.png create mode 100644 webpayments/index.html create mode 100644 webpayments/index.md diff --git a/webpayments/ecosystem.png b/webpayments/ecosystem.png new file mode 100644 index 0000000000000000000000000000000000000000..a5879b05a0620b2d45854a2a178022a6acd8a187 GIT binary patch literal 32824 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 Pnkvbwfh*+Ry#IdyM%8f% literal 0 HcmV?d00001 diff --git a/webpayments/index.html b/webpayments/index.html new file mode 100644 index 0000000..8e597df --- /dev/null +++ b/webpayments/index.html @@ -0,0 +1,21 @@ +Web Payment APIs
+
\ No newline at end of file diff --git a/webpayments/index.md b/webpayments/index.md new file mode 100644 index 0000000..bb2ca61 --- /dev/null +++ b/webpayments/index.md @@ -0,0 +1,234 @@ +--- +title: Web Payment APIs +description: A short talk on Web Payment APIs +url: https://captnemo.in/talks/webpayments/ +--- + + + +# Web Payment APIs + +\- nemo +(RFCs We Love, May 2020) + +--- + +# `whoami` + +TODO + +--- + +# webpayments + + + +>The goal is to create a safe, decentralized system and a set of open, patent and royalty-free specifications that allow people on the Web to send each other money as easily as they exchange instant messages and e-mail today. + +--- + +# W3C + +- ActivityPub +- CGI +- CSS +- DOM +- HTML +- RDF +- SOAP +- SPARQL +- SVG +- XHTML +- XML +- XPath + +--- + +# [demo](https://paymentrequest.show/demo) + +Before we start, let's do a quick demo of how it all comes together. + +--- + +# specifications* + +- [Payment Request API](https://w3c.github.io/payment-request/) + +- [Payment Method Identifiers](https://w3c.github.io/payment-method-id/) + +- [Payment Handler API](https://w3c.github.io/payment-handler/) + +- [Payment Method Manifest](https://w3c.github.io/payment-method-manifest/) + + +See [github.com/w3c/webpayments/wiki](https://github.com/w3c/webpayments/wiki) for a complete list + +\* working drafts + +--- + +# specifications* + +- [Payment Request API](https://w3c.github.io/payment-request/): _how to initiate a payment_ +- [Payment Method Identifiers](https://w3c.github.io/payment-method-id/): _what is a payment method?_ +- [Payment Method Manifest](https://w3c.github.io/payment-method-manifest/): _definition of a payment method_ +- [Payment Handler API](https://w3c.github.io/payment-handler/): _how a payment method is processed?_ +--- + +# the talk + +Try to understand how we can complete a payment entirely from within your browser _without relying on any proprietary APIs_ (as a processor/merchant), and yet _being compatible with any payment instrument_. + +--- + +# definitions + +The **payment method**: the means that the payer uses to pay the payee (e.g., a basic card payment). They are uniquely identified via a **Payment Method Identifier** (PMI) + +The **payment method provider** establishes the ecosystem to support that payment method. + +The details of how to fulfill a payment request for a given payment method is an implementation detail of a **payment handler**, which is a Web application that can handle a request for payment on behalf of the user. + +--- + +# examples + +**payment method**: Paytm Wallet Account, UPI, Card, Gift Card, Voucher Code, Bitcoin. + +**Payment Method Identifier**: `https://paytm.com`, `https://npci.org.in/upi`, `basic-card` + +**payment method provider**: `Razorpay`, `Stripe`, `PayPal`, `NPCI/UPI`, `your-bank-goes-here` + +--- + +# [Payment Method Identifier](https://w3c.github.io/payment-method-id/) + +- URL-based payment method identifier (say, `https://bitcoincore.org/` or `https://pay.wechat.com`). +- or a standardized payment method identifier (currently only `basic-card` is on the registry). + +humanized: how to identify and categorize various payment methods? + +--- + +# [Payment Method Manifest](https://w3c.github.io/payment-method-manifest/) + +>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. + +humanized: defines the schema of a specific payment method. The one for `basic-card` is standardized in a [specification already](https://w3c.github.io/webpayments-methods-card/). + +--- + +# How to get to the manifest? + +``` +GET / HTTP/2 +Host: alicepay.com + +HTTP/2 204 +Link: ; rel="payment-method-manifest" +``` + +--- + +# What's inside a Manifest? + +A payment method manifest tells the user-agent "how to process payments for a particular method". + +`URL: https://alicepay.com/pay/payment-manifest.json` + +```json +{ + "default_applications": ["app/webappmanifest.json"], + "supported_origins": [ + "https://bobpay.xyz", + "https://alicepay.friendsofalice.example" + ] +} +``` + +user-agent can go next to `https://alicepay.com/pay/app/webappmanifest.json` to *install* the AlicePay application. + +`supported_origins` defines which origins can be trusted to install an application for this payment method. + +--- + +# What's inside a Manifest (1) + +```json +{ + //... + "supported_origins": [ + "https://beta.alicepay.com", + "https://bobpay.com" + ] +} +``` + +A payment application hosted at either `alicepay.com`, `beta.alicepay.com`, or `bobpay.com` is now authorized for the payment method `https://alicepay.com`. + +--- + +# What's inside a Manifest (2) + +```json +{ + //... + "supported_origins": "*" +} +``` + +any third party is allowed to support the payment method. + +--- + +# recap + +So far, the user-agent has done the following: + +1. seen a `payment-method` (we haven't gotten to how) +2. discovered the payment method manifest URL +3. parsed the payment method manifest to determine the webapp manifest URL +4. fetched the webapp manifest URL +5. _installed the payment method's application(s)_ + +The application installation is based on W3C's [Web App Manifest specification](https://www.w3.org/TR/appmanifest/). + +--- + +# Payment Handler + +Each payment handler defines: + +1. Steps to check if a payment can be made: +2. Steps to respond to a payment request: + >The structure of this object is specific to each payment method. +3. Steps for when a user changes payment method (optional) + >Steps that describe how to handle the user changing payment method or monetary instrument (e.g., from a debit card to a credit card) + +--- + +# overview + +TODO: Move this higher? + +![](ecosystem.png) + +[ref](https://www.w3.org/2018/Talks/ij_payments_20181009/w3c.pdf) + +--- + +# [Payment Request API](https://w3c.github.io/payment-request/) + + +--- + +# Future Scope + +- Installing a payment app is clunky, maybe we can just install the service-worker directly. + +--- + +# references + +- [Web Payments Working Group Blog](https://www.w3.org/blog/wpwg/) +- [ Web Payments Working Group Charter ](https://www.w3.org/Payments/WG/charter-201912.html)