【问题标题】:Stripe appears to create popup window but closes it on mobileStripe 似乎创建了弹出窗口,但在移动设备上将其关闭
【发布时间】:2015-10-12 12:30:09
【问题描述】:

我正在使用 Stripe Checkout,桌面上的弹出窗口一切正常。当我在移动设备上查看网站时(特别是原生 Android 4.3 上的 Chrome,也尝试在 Opera for Android 上获得类似结果),弹出窗口似乎打开了一秒钟,然后关闭。我从来没有看到它,它也不在另一个打开的标签中。

我已阅读this documentation 并且我的代码是合规的。

这是我正在使用的 JavaScript:

$(document).ready(function() {

    //The actual giving part
    $('a.payamount').click(function(e) {

        window.amountToGive = $(this).data('amount');

        // Open Stripe Checkout with further options
        stripeHandler.open({
            name: campaignName,
            description: 'Give $' + (window.amountToGive / 100) + ' to ' + campaignName,
            amount: window.amountToGive
        });
    });

    var stripeHandler = StripeCheckout.configure({
        key: 'mykeygoeshere',
        image: '/img/g.png',
        locale: 'auto',
        token: function(token) {
            //Add campaign info
            token['campaign_id'] = campaignId;
            token['amount'] = window.amountToGive;

            postStripeData(token);
        }
    });

    // Close Checkout on page navigation
    $(window).on('popstate', function() {
        stripeHandler.close();
    });
});

function postStripeData(token) {
    showLoadingModal();
    $.ajax({
        method: 'POST',
        url: postStripeDataUrl,
        data: token
    })
    .always(function(data_jqXHR, textStatus, jqXHR_errorThrown) {
        if (textStatus.indexOf('error') == -1) {
            //POST'ed ok
            console.log(data_jqXHR);
            window.location.href = data_jqXHR;
        } else {
            alert('Error while posting!');
        }
    });
}

我正在使用https://checkout.stripe.com/checkout.js

我已经尝试通过 Chrome 开发者工具进行调试,您可以在其中看到 Android 日志,并且没有出现任何错误。

【问题讨论】:

  • 哪个手机浏览器?
  • 原生 Android 4.3 上的 Chrome
  • 它可以在 Firefox 上运行吗?歌剧?海豚?股票浏览器?
  • 除了 Chrome 没有其他浏览器 ;)。我下载火狐试试看。
  • 这样做,你就会知道问题是否特定于 chrome。

标签: javascript jquery stripe-payments


【解决方案1】:

经过一段时间的调试,点击功能中似乎缺少e.preventDefault();

$('a.payamount').click(function(e) {
    e.preventDefault();
    //... rest of code

【讨论】:

  • @TiberiuC。这个解决方案有什么危险吗?还是这是 FUD?
  • 在我分享的文章中有很好的描述......是否是 FUD 由您决定
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 2021-04-09
  • 2021-07-28
  • 1970-01-01
相关资源
最近更新 更多