1

我正在尝试将 Amazon Pay 集成到网上商店。登录按钮显示正确,但只要我使用沙盒帐户凭据登录以显示地址小部件,我就会在 Chrome 开发工具控制台中收到以下错误:[Amazon.error] 尝试重定向到http://myownvirtualhost.local/ shop.html? ... 但方案不是 HTTPS。 所以错误很明显,但我该如何解决这个问题?登录后重定向应该发生在 HTTPS url 上,但如前所述,我正在使用配置的虚拟主机在我的 localhost 上进行开发。我还使用正确的 (EU) 沙箱 Widget.js 文件并在我的 PHP 配置中将沙箱模式设置为 true。

我的代码:

OffAmazonPayments.Button('amazonPayButton', 'MERCHANT-ID', {
                type:  'PwA',
                language: 'de-DE',

                authorization: function() {
                    loginOptions = {scope: 'profile postal_code payments:widget payments:shipping_address', popup: true };
                    authRequest = amazon.Login.authorize(loginOptions, 'http://myownvirtualhost.local/shop.html?action=cart');
                },
                onError: function (error) {
                    console.log('auth request: ' + error.getErrorCode() + ': ' + error.getErrorMessage());
                }
            });

我没有提供我的商家 ID,因为这是一个示例。所以我的重定向 url 有 HTTP 作为方案,这就是错误的原因。我很困惑,因为在阅读了亚马逊支付集成指南的注册章节后,我认为 SSL 与本地主机无关。从集成指南:

获取 SSL 证书。您的服务器需要具有由受信任的证书颁发机构颁发的有效 SSL 证书。注意:在“localhost”环境中工作时,不需要 SSL 证书。有关详细信息,请参阅 SSL 认证。

任何帮助表示赞赏。提前致谢!

4

1 回答 1

1

我想“localhost”应该被视为默认的“http://localhost”域。

如果您想坚持使用虚拟主机,有两种选择:

  1. 为其安装本地 SSL 证书(在 SO 和互联网上有很多关于此的指南)
  2. 即使没有安装证书,也将返回 URL 设置为“https://myownvirtualhost.local”。您的浏览器将显示错误。将地址修改为“http://”就可以了。这不是很优雅,但应该足以用于开发目的。
于 2021-05-11T16:06:20.407 回答