我一直遵循此link作为实施指南以及官方W3C guide。
根据我的逻辑,在我们的网站上显示Google Pay按钮:
window.PayentRequest
是否可用,如果可用,则:paymentRequest.canMakePayment().then((result)=>{ //if result is true, display the GPay the button }).catch(()=>{}}
.show()
我们的应用程序在React中,我正在componentDidMount中执行第1-3步。在大多数情况下,这可以正常工作-页面加载完成,检查PaymentRequest是否可用并且PaymentMethod是否受支持,然后将状态设置为显示Google Pay按钮,然后单击触发浏览器的本机付款表。
这是我一直在努力解决的问题:
在Google Chrome浏览器(v 72.0.3626.109)(在台式机和移动设备上)上,有时当我导航至页面时GooglePay按钮不会显示,只有刷新几次后才会显示。
对于未显示的情况,从日志中可以看到canMakePayment方法根本无法解析-它不会进入then
或catch
中。我不知道它可能会在哪里引发异常,该异常正在冒泡的地方,也不知道为什么它会以静默方式失败。
任何见解都会有所帮助-如果canMakePayment()
返回了承诺,为什么以及何时无法解决?我在哪里检查错误?
这是我正在做的事情-我也可以在这个问题上复制问题- https://jsfiddle.net/soham_scratchpad/bzsyrjaf/5/