尝试登录本地主机时出现 Amazon Pay 沙盒错误 - "Scheme not HTTPS"

Amazon Pay Sandbox Error when trying to login on localhost - "Scheme not HTTPS"

我正在尝试为网上商店集成 Amazon Pay。登录按钮显示正确,但是当我使用我的沙箱帐户凭据登录以显示地址小部件时,我在 Chrome 开发工具控制台中收到以下错误:[Amazon.error]试图重定向到 http://myownvirtualhost.local/shop.html?..。但方案不是 HTTPS。 所以错误很明显,但我该如何解决呢?登录后,重定向应该发生在 HTTPS url 上,但正如已经提到的,我正在使用已配置的虚拟主机在我的本地主机上进行开发。我还使用了正确的 (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 作为方案,这是错误的原因。我很困惑,因为在阅读了 Amazon Pay Integration 指南的注册章节后,我认为 SSL 与本地主机无关。 来自集成指南:

Obtain an SSL certificate. Your server is required to have a valid SSL certificate issued by a trusted Certificate Authority. Note: When working in a "localhost" environment, an SSL certificate is not required. For more information, see SSL certification.

感谢任何帮助。提前致谢!

我想“localhost”应该按字面意思理解为默认的“http://localhost”域。

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

  1. 为它安装一个本地 SSL 证书(在 SO 和互联网上有很多这方面的指南)
  2. 即使没有安装证书,也请将 return URL 设置为“https://myownvirtualhost.local”。您的浏览器将显示错误。将地址修改为“http://”即可解决问题。这不是很优雅,但对于开发目的应该足够好了。