blob: 6a8bc5a45eb238c1eae838178fe21cb5450c4daa [file] [log] [blame]
<!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>