- From: Dave Longley <notifications@github.com>
- Date: Fri, 12 Feb 2016 12:51:21 -0800
- To: w3c/webpayments <webpayments@noreply.github.com>
- Message-ID: <w3c/webpayments/issues/55/183484374@github.com>
@zkoch, Here's a first quick attempt at combining the approaches: ```js var checkout = new Checkout(); checkout .send('paymentItem', paymentItems) // send line item estimate to UA .request('shippingAddress') // request shippingAddress from UA .addEventListener('shippingAddressChange', shippingAddressChanged) .addEventListener('shippingOptionChange', shippingOptionChanged) .start() // start the checkout UI .then(finishCheckout); // checkout UI has collected the info function shippingAddressChanged(event) { var checkoutDetails = event.checkoutDetails; if(!isAddressAcceptable(checkoutDetails.address)) { return checkout.cancel('We cannot ship to your address.'); } // send updated payment items and request a shipping option selection; // each function here can return a Promise event .send('paymentItem', getPaymentItems(checkoutDetails)) .request('shippingOption', getShippingOptions(checkoutDetails.address)); } function getPaymentItems(checkoutDetails) { // post checkout details to shipping calculation endpoint and return // updated payment items in a Promise return fetch('/calc-shipping', { method: 'POST', body: JSON.stringify(checkoutDetails) }).then(function(res) { return res.json(); }); } function getShippingOptions(checkoutDetails) { // ... determine shipping options from checkoutDetails.shippingAddress ... return Promise.resolve(shippingOptions); } function finishCheckout(checkoutDetails) { // asynchronously create a payment request from the checkout details customCreatePaymentRequest(checkoutDetails).then(function(paymentRequest) { return checkout.finish(paymentRequest); }).then(function(acknowledgement) { // handle acknowledgement from payment app }); } ``` --- Reply to this email directly or view it on GitHub: https://github.com/w3c/webpayments/issues/55#issuecomment-183484374
Received on Friday, 12 February 2016 20:52:16 UTC