- From: bifurcation <notifications@github.com>
- Date: Wed, 20 Jan 2016 08:26:49 -0800
- To: WICG/paymentrequest <paymentrequest@noreply.github.com>
- Message-ID: <WICG/paymentrequest/issues/42/173260987@github.com>
I think there's a missing distinction here between *how* you're willing to be paid and *what* you want to be paid. The former question is the one that the user needs to be involved in, and it has a very clear event model -- you request a payment provider with some bounds, and the user hands you one. Then you request what you want from that provider. ``` var how = { /* how am i willing to be pad? */ }; var what = { /* what do i want to be paid? */ }; navigator.payment.getProvider(how) .then(provider => provider.requestPayment(what)); ``` This also lets us reflect all these questions around different payment schemes, shipping addresses, etc. in the type system for what's returned by `getProvider()`. The top-level `PaymentProvider` interface might only have the `requestPayment()` method, but you could have sub-interfaces that define more nuanced interactions, or expose additional capabilities (`if (provider.shippingAddress) ...`). This also aligns pretty cleanly with the idea of registration and delegated payment. When you register a payment provider, you need to provide the browser what it needs to fulfill the `PaymentProvider` interface. --- Reply to this email directly or view it on GitHub: https://github.com/WICG/paymentrequest/issues/42#issuecomment-173260987
Received on Wednesday, 20 January 2016 16:27:28 UTC