canMakePayment возвращает ноль в FireFox - PullRequest
0 голосов
/ 18 сентября 2018

Я использую библиотеку реагирования на элементы Stripe для страницы, на которой я обрабатываю платежи.Когда я загружаю invoice в FireFox, метод paymentRequest.canMakePayment() возвращает null.Однако в Edge, Chrome и Safari он отображает и работает как задумано.

Информация Firefox:

Сборка: latest Платформа: Windows 10 Аддоны: react developer tools, ad block plus

Примечание: протестировано с выключенным блокировщиком.

Код для PaymentRequestButtonElement инъекции.

class _StripeButton extends Component {
    constructor(props) {
        super(props);

        const paymentRequest = props
            .stripe
            .paymentRequest({
                country: 'US',
                currency: 'usd',
                total: {
                    label: " Subscription",
                    amount: 100
                },
                requestPayerName: true,
                requestPayerEmail: true
            });

        paymentRequest.on('token', ({
            complete,
            token,
            ...data
        }) => {
            complete('success');
        });

        paymentRequest
            .canMakePayment()
            .then((result) => {
                console.log("DONE: ", result);
                this.setState({
                    canMakePayment: !!result
                });
            }, (err) => {
                console.log(err);
            });

        this.state = {
            canMakePayment: false,
            paymentRequest
        };
    }

    render() {
        if (this.state.canMakePayment) {
            return (<PaymentRequestButtonElement
                paymentRequest={this.state.paymentRequest}
                className="PaymentRequestButton"
                style={{
                paymentRequestButton: {
                    theme: 'dark',
                    height: '64px'
                }
            }}/>);
        }

        return <Loading/>;
    }
}

const StripeButton = injectStripe(_StripeButton);

Компонент, который отображает кнопку:

 render() {
        return (
            <StripeProvider stripe={this.state.stripe}>
                <Elements>
                    <StripeButton/>
                </Elements>
            </StripeProvider>
        );
    }

Если я вручнуюпереключить this.state.canMakePayment в истину в инструментах разработчика, я получаю ошибку Error: The paymentRequestButton Element is not available in the current environment.

1 Ответ

0 голосов
/ 15 февраля 2019

На сегодняшний день (15 февраля 2019 г.) API запросов на оплату Firefox доступен только для ночных сборок. Пожалуйста, смотрите здесь внизу страницы.

...