如何让 Amazon Pay 在弹出窗口 window 中打开而不是刷新?

How to make Amazon Pay open in a popup window instead of refreshing?

我正在尝试做的事情:我正在尝试按照此文档将 Amazon Pay 集成到我的 React-Express 网站中 here

我的问题: 每当有人点击 Amazon Pay Checkout 按钮时,它会重定向(刷新当前页面)到 Amazon Pay 网站以完成付款。这样做的问题是,所有状态都会被重置。我想做的是,在弹出窗口 window.

中打开它

注意:我试过谷歌搜索,相关资料很少,大部分都说不可能,但有可能。 This site 这里使用 Amazon Pay 并使用 React 构建,并且该站点来自 Amazon 本身用于演示。这里的 Amazon Pay 按钮打开了一个弹出窗口而不是刷新,但是我在任何地方都找不到这个网站的源代码。

我的进度:

在我的后端 Express 服务器中,这就是我所做的,

const payload = {
        storeId: AMAZON_STORE_ID,
        scopes: ["name", "email", "billingAddress"],
        deliverySpecifications: {
            specialRestrictions: ["RestrictPOBoxes"],
        },
        paymentDetails: {
            chargeAmount: {
                amount: account.price,
                currencyCode: 'EUR'
            },
        },
        // popup: true
    }

    const signature = amazonPayClient.generateButtonSignature(payload)

    console.log(`Sign: ${signature}`)

    return res.json({ sign: signature, payLoad: JSON.stringify(payload) })

然后在我的前端 React 中,

amazon.Pay.renderButton('#amazon-pay', {
                // set checkout environment
                merchantId: config.AMAZON_MERCHANT_ID,
                publicKeyId: config.AMAZON_PUBLIC_KEY_ID,
                ledgerCurrency: 'EUR',
                checkoutLanguage: 'en_GB',
                productType: 'PayAndShip',
                placement: 'Checkout',
                buttonColor: 'Gold',
                createCheckoutSessionConfig: {                     
                    payloadJSON,
                    signature
                },
                popup: true
            })

感谢您的提前帮助:D

原因是,我的 Amazon Pay 在新页面中打开,而弹出窗口中的 Amazon Pay Demo 网站中的那个是因为货币。如果我将货币从 'EUR' 更改为 'USD',则会出现弹出窗口。

demo 站点中,如果您从右上角将货币从美元更改为欧元,您将看到更改发生。

所以,要解决这个问题,我只需要使用美国地区和美元货币