- From: Rouslan Solomakhin <notifications@github.com>
- Date: Tue, 11 Sep 2018 11:25:43 -0700
- To: w3c/payment-handler <payment-handler@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/payment-handler/issues/299/420372783@github.com>
I would prefer to add `AbrotPaymentEvent` for merchant-initiated abort and a "window closed promise" for user-initiated abort. A promise has the nice property that it's impossible to miss it by starting to listen for it too late. Correct me if I'm wrong here.
- `AbortPaymentEvent`
- Sent by the merchant website via `PaymentRequest.abort()`.
- Payment Handler can choose to `respondWIth(true)` or `respondWith(false)` to indicate whether it's acceptable to interrupt it in the current state.
- Example:
````javascript
self.addEventListener('abortpayment', evt => {
// Easy-going payment handler.
evt.respondWith(true);
});
````
- "Window closed promise"
- Sent by the user agent when the user closes the payment handler window.
- Payment Handler does not have a choice on how to respond: the user has already closed the payment handler window.
- Example:
````javascript
self.addEventListener('paymentrequest', paymentRequestEvent => {
paymentRequestEvent.respondWith(new Promise((resolve, reject) => {
let userConfirmedPayment = false;
paymentRequestEvent.openWindow("https://bobpay.xyz/").then(windowClient => {
// Handle user closing the payment handler window.
windowClient.windowClosed.then(() => {
if (!userConfirmedPayment) {
// User closed the window before confirming the payment.
reject(err);
}
});
}).catch(err => {
// Was not able to open the window in the first place.
reject(err);
});
}));
});
````
This situation would be ideal, but I'm not sure whether this is how
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/payment-handler/issues/299#issuecomment-420372783
Received on Tuesday, 11 September 2018 18:26:05 UTC