- From: Rouslan Solomakhin <notifications@github.com>
- Date: Tue, 10 Jan 2017 07:08:34 -0800
- To: w3c/webpayments-payment-apps-api <webpayments-payment-apps-api@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/webpayments-payment-apps-api/issues/82/271599438@github.com>
I went through the code visually and fixed up a few mistakes. I have not tested it yet, so not sure whether it actually works.
```javascript
let contentType;
/* Handle payment request from a payee */
self.addEventListener('paymentrequest', function(e) {
e.respondWith(new Promise(function(resolve, reject) {
fetch('https://www.example.com/bobpay/process', {
method: 'POST',
body: JSON.stringify(e.data),
})
.then(function(response) {
contentType = response.headers.get('content-type');
if (!contentType) {
reject('No content type header.');
} else {
return response.text();
}
})
.then(function(body) {
if (contentType.indexOf('application/json') !== -1) {
/* Respond to the payment request with the received body */
resolve(JSON.parse(body));
} else if (contentType.indexOf('text/html') !== -1) {
/* Handle payment response from payment app window about to open. */
self.addEventListener('message', function(e) {
if (e.data.hasOwnProperty('name')) {
reject(e.data);
} else {
resolve(e.data);
}
});
/* Open a new payment window and populate it with the
document returned from the response */
const url = 'data:text/html;base64,' + btoa(body);
clients.openWindow(url).then(function(windowClient) {
windowClient.postMessage(e.data);
})
.catch(function(error) {
reject('Unable to open window.');
});
} else {
reject('Unexpected value in content type header.');
}
})
.catch(function(err) {
reject(err);
});
}));
});
```
--
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/webpayments-payment-apps-api/issues/82#issuecomment-271599438
Received on Tuesday, 10 January 2017 15:09:06 UTC