gpt4 book ai didi

stripe-payments - 为什么 Stripe paymentRequest.canMakePayment() 在 Localhost 上会失败?

转载 作者:行者123 更新时间:2023-12-04 02:16:28 25 4
gpt4 key购买 nike

我让它在我的生产服务器上工作,但在 localhost canMakePayment()返回 null .

我已经通过缩小的 Stripe 代码跟踪了这一点,但是函数 ko 撞到了墙。它只是发送一个名为 CAN_MAKE_PAYMENT 的操作到某个消息队列,此时执行变为异步,在请求通过 e.available === false 解决之前我无法进一步跟踪没有进一步的信息。

我已经验证了 AP​​I 确实在 localhost 上的 Chrome 中可用(window.PaymentRequest 可用)。我也在本地运行 https (虽然没有绿色检查)。

如何追踪导致 Stripe 报告 PaymentRequest 的原因不可用?如果我没有绿色 SSL 检查,Chrome 会拒绝 PaymentRequest 调用吗?如果是这样,我将如何测试这个? Chrome 文档只是说如果 PaymentRequest 可用,那么您可以调用 API。

如果我知道消息队列的处理位置,我可以进一步调试。

最佳答案

Stripe 的支持团队向我确认需要绿色 SSL 验证。

"One of the prerequisites for the payment request button is that thepage the payment request is located on will have to be served assecure with a valid certificate. This is a requirement for bothproduction and development."


这是一个实验。在 Chrome 中浏览到 URL 以绿色显示“安全 https:”的站点,例如 https://stackoverflow.com .打开开发者控制台,粘贴这些命令( from here),然后按 Enter:
const supportedPaymentMethods = [
{
supportedMethods: 'basic-card',
}
];
const paymentDetails = {
total: {
label: 'Total',
amount:{
currency: 'USD',
value: 0
}
}
};
const options = {};
const request = new PaymentRequest(
supportedPaymentMethods,
paymentDetails,
options
);
request.show();
然后,您将看到一个付款请求模式弹出。
但是,如果您浏览到您自己的本地站点,其中地址栏显示为红色“不安全”(并且“https”被划掉),并且如果您尝试在控制台中运行相同的代码,则不会弹出付款请求模式up(即使您为域添加了安全异常(exception))。
因此,当连接不完全安全时,显然 Chrome(可能还有其他浏览器)会阻止 Stripe(以及 Stripe 等其他工具)访问该浏览器功能。
来自 Stripe 的更新:

While Chrome iOS does include a PaymentRequest implementation, it does not allow PaymentRequest to be used from an iframe which prevents Stripe's payment request button element from working. We're working with the Chrome team to get this resolved in a future release.

In order for Apple Pay to work in the iOS Simulator or on a test device the domain must be publicly accessible and registered through the Stripe dashboard (https://dashboard.stripe.com/account/apple_pay) or API. https://stripe.com/docs/stripe-js/elements/payment-request-button#verifying-your-domain-with-apple-pay We recommend using a tool like ngrok (ngrok.com) to create a public-facing domain with a valid HTTPS certificate that tunnels to your local environment.

关于stripe-payments - 为什么 Stripe paymentRequest.canMakePayment() 在 Localhost 上会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49390912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com