self.addEventListener('canmakepayment', (event) => { event.respondWith(true); }); async function responder(event) { const methodName = event.methodData[0].supportedMethods; const shippingOption = event.shippingOptions[0].id; const shippingAddress = { addressLine: [ '1875 Explorer St #1000', ], city: 'Reston', country: 'US', dependentLocality: '', organization: 'Google', phone: '+15555555555', postalCode: '20190', recipient: 'John Smith', region: 'VA', sortingCode: '', }; if (!event.changeShippingOption) { return { methodName, details: { changeShippingOptionReturned: 'The changeShippingOption() method is not implemented.', }, }; } let changeShippingOptionReturned; try { const response = await event.changeShippingOption(shippingOption); changeShippingOptionReturned = response; } catch (err) { changeShippingOptionReturned = err.message; } return {methodName, details: {changeShippingOptionReturned}, shippingAddress, shippingOption}; } self.addEventListener('paymentrequest', (event) => { event.respondWith(responder(event)); });