iframe API запроса платежа Apple Pay

Есть страница с реализованным апи платежного запроса, на ней есть кнопка Applepay и все работает. Но как только страница встраивается в iframe, возникает ошибка SecurityError: Попытка начать сеанс Apple Pay из документа с источником безопасности, отличным от его фрейма верхнего уровня.

Атрибут allowpaymentrequest = 'true'

Свойство allowPaymentRequest интерфейса HTMLIFrameElement возвращает логическое значение, указывающее, можно ли вызывать API запроса платежа в iframe из другого источника.

Обе страницы https.

example.com:

            const applePayMethod = {
                supportedMethods: "https://apple.com/apple-pay",
                data: {
                    version: 3,
                    merchantIdentifier: "somemerchantid",
                    merchantCapabilities: ["supports3DS",],
                    supportedNetworks: ["masterCard", "visa"],
                    countryCode: "US",
                },
            };

            const paymentDetails = {
                total: {
                    label: "My Merchant",
                    amount: { value: "27.50", currency: "USD" },
                },
            }

            try {
                const request = new PaymentRequest([applePayMethod], paymentDetails, {});

                const response = await request.show();
                const status = processResponse(response);
                response.complete(status);
            } catch (e) {
                console.log(e)
            }  

code-with-iframe.com

<iframe allowpaymentrequest='true' src="https://example.com/" frameborder="0"></iframe>


person user11088327    schedule 03.06.2020    source источник


Ответы (1)


Атрибут Allowpaymentrequest устарел и больше не поддерживается браузерами.

Подробнее здесь

person Ivo Ivanov    schedule 24.02.2021