| <!DOCTYPE html> |
| <body> |
| <script> |
| const applePayRequestBase = () => { |
| return { |
| merchantCapabilities: ['supports3DS'], |
| supportedNetworks: ['visa'], |
| countryCode: 'US', |
| }; |
| }; |
| |
| const applePayPaymentRequest = () => { |
| const request = applePayRequestBase(); |
| request.total = { label: 'total', amount: '0.00' }; |
| request.currencyCode = 'USD'; |
| return request; |
| }; |
| |
| const applePayMethod = () => { |
| const request = applePayRequestBase(); |
| request.version = 1; |
| request.merchantIdentifier = ''; |
| return { |
| supportedMethods: 'https://apple.com/apple-pay', |
| data: request, |
| }; |
| }; |
| |
| const eventListener = async () => { |
| internals.mockPaymentCoordinator.supportsUnrestrictedApplePay = false; |
| |
| const applePaySessionAvailable = !!window.ApplePaySession; |
| const paymentRequestAvailable = !!window.PaymentRequest; |
| if (!applePaySessionAvailable || !paymentRequestAvailable) { |
| window.webkit.messageHandlers.testApplePay.postMessage({ applePaySessionAvailable, paymentRequestAvailable }); |
| return; |
| } |
| |
| const supportsVersion = ApplePaySession.supportsVersion(1); |
| const canMakePayments = ApplePaySession.canMakePayments(); |
| const canMakePaymentsWithActiveCard = await ApplePaySession.canMakePaymentsWithActiveCard(''); |
| |
| if (!window.wkPaymentRequest) { |
| wkPaymentRequest = new PaymentRequest([applePayMethod()], { |
| total: { |
| label: 'total', |
| amount: { currency: 'USD', value: '0.00' }, |
| }, |
| }); |
| } |
| |
| const canMakePayment = await wkPaymentRequest.canMakePayment(); |
| |
| window.webkit.messageHandlers.testApplePay.postMessage({ |
| applePaySessionAvailable, |
| paymentRequestAvailable, |
| supportsVersion, |
| canMakePayments, |
| canMakePaymentsWithActiveCard, |
| canMakePayment, |
| }); |
| }; |
| |
| window.addEventListener('load', eventListener); |
| window.addEventListener('hashchange', eventListener); |
| </script> |