Cordova - Stripe - Apple Pay?

问题描述 投票:0回答:1

我有一个科尔多瓦应用程序。我正在寻求将 ApplePay 选项实现为条纹形式。是否可以在 Cordova 应用程序中使用 Stripe Checkout 进行 Apple Pay?还是仅限 Safari?

我安装了 cordova-plugin-applepay 以及以下脚本:

   require_once('/var/www/vhosts/stripe-php-latest/init.php');

    // Initialize Stripe
        const stripe = Stripe('<?php echo $key; ?>');

        // Create a payment request
        const paymentRequest = stripe.paymentRequest({
            country: 'US',
            currency: 'usd',
            total: {
                label: 'Demo total',
                amount: 100,
            },
            requestPayerName: true,
            requestPayerEmail: true,
        });

        // Check the availability of the Payment Request API
        const elements = stripe.elements();
        const prButton = elements.create('paymentRequestButton', {
            paymentRequest: paymentRequest,
        });

        // Check if the Apple Pay button can be displayed
        paymentRequest.canMakePayment().then(function (result) {
            if (result) {
                document.getElementById('apple-pay-button').style.display = 'block';
                prButton.mount('#apple-pay-button');
                alert('Apple Pay');
            } else {
                alert('Apple Pay is not available.');
            }
        });

        // Handle payment method creation
        paymentRequest.on('paymentmethod', async (ev) => {
            const {paymentIntent, error: backendError} = await fetch('<?php echo $root;?>nav/pay/payment.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify({
                    payment_method: ev.paymentMethod.id,
                }),
            }).then(r => r.json());

            if (backendError) {
                ev.complete('fail');
                console.error(backendError);
            } else {
                ev.complete('success');
                stripe.confirmCardPayment(paymentIntent.client_secret).then(function (result) {
                    if (result.error) {
                        console.error(result.error.message);
                    } else if (result.paymentIntent.status === 'succeeded') {
                        console.log('Payment succeeded!');
                    }
                });
            }
        });

但它返回“Apple Pay 不可用”。要么我实现的代码完全错误,要么只是不支持?

我现在坚持使用科尔多瓦,无法更改为离子/电容器。

有人在 stripe.js / cordova / apple pay 上取得过成功吗?

最诚挚的问候

php cordova stripe-payments applepay
1个回答
0
投票

如果您使用 PaymentRequestButton,仅当您遵循此处列出的所有要求时,才会显示 Apple Pay。

但请注意,Apple Pay 并不总是在 Web 视图中工作,而 Google Pay 也从不在 Web 视图中工作。因此 PaymentRequestButton 可能无法在 Cordova 上正常运行。

对于移动应用程序,建议使用

Mobile Elements 或仅使用真实浏览器(而不是 Web 视图)将用户重定向到网站。

© www.soinside.com 2019 - 2024. All rights reserved.