如何让 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 站点中,如果您从右上角将货币从美元更改为欧元,您将看到更改发生。
所以,要解决这个问题,我只需要使用美国地区和美元货币
我正在尝试做的事情:我正在尝试按照此文档将 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 站点中,如果您从右上角将货币从美元更改为欧元,您将看到更改发生。
所以,要解决这个问题,我只需要使用美国地区和美元货币