function postToServer(paymentResponse) {
  return fetch('/checkout', {
    body: paymentResponse.toJSON(),
    method: 'POST',
    headers: {
      'content-type': 'application/json',
    },
  });
}

async function handlePayment(paymentMethods, paymentDetails, paymentOptions) {
  const request = new PaymentRequest(paymentMethods, paymentDetails, paymentOptions);
  let paymentResponse;
  try {
    paymentResponse = await request.show();
  } catch (error) {
    console.error('Payment cancelled by user', error);
    return false;
  }
  try {
    await postToServer(paymentResponse);
    paymentResponse.complete('success');
  } catch (error) {
    console.error(error);
    paymentResponse.complete('fail');
  }
}
