代码之家  ›  专栏  ›  技术社区  ›  Kishanv

Stripe.js-谷歌支付按钮未显示

  •  0
  • Kishanv  · 技术社区  · 2 年前

    我正在使用stripe的支付请求按钮在我的应用程序上显示apple pay和google pay: https://stripe.com/docs/stripe-js/elements/payment-request-button 完成了域验证和显示苹果支付和谷歌支付按钮所需的一切。 Apple pay运行良好。按钮在safari上显示正确。

    但谷歌的支付按钮并没有显示。当我刷新显示“付款请求按钮”的页面时,谷歌支付按钮开始显示,所以它不会在第一次访问时显示,而是在刷新页面时开始显示。一旦它显示出来,它就会停留。但在清除浏览器缓存和cookie后,按钮再次被隐藏。然后,即使在刷新页面后,它也不会显示。

    谷歌按钮在这个条纹页面的顶部可见: https://stripe.com/docs/stripe-js/elements/payment-request-button#testing 因此,这意味着浏览器兼容性没有问题。我在我的应用程序上使用的是真卡。

    此外,当我访问此页面时: https://rsolomakhin.github.io/pr/pwg/ 它显示绿色的“无注册仪器”文本。当我回到上面的条纹链接,点击谷歌按钮并进行测试付款时,该页面上的绿色文本 https://rsolomakhin.github.io/pr/pwg/ 更改为“已注册仪器”。然后谷歌按钮开始再次显示在我的应用程序上。

    所以,我认为问题是,支付请求按钮api没有检测到谷歌支付中添加的卡。但在其他网站上进行任何测试谷歌支付交易后,一些谷歌数据被保存在cookie和缓存中,按钮也开始在我的页面上工作。 但我希望按钮每次都显示,即使在清除浏览器缓存后也是如此。 我不知道发生了什么事。有什么帮助吗?

    代码:

        function initializeStripeWalletPay() {
        const paymentRequest = stripe.paymentRequest({
        currency: CURRENCY,
        country: CODE,
        requestPayerName:true,
        requestPayerEmail:true,
        total: {
            label: 'Total',
            amount: total_amount
           }
        });
        const prButton = elements.create('paymentRequestButton',{  
        paymentRequest: paymentRequest});
        paymentRequest.canMakePayment().then((result) => {
        if(result){ prButton.mount('#payment-request-button'); }});    
        }
        $(window).load(function(){
            initializeStripeWalletPay();
        })
    
    0 回复  |  直到 2 年前