贝宝智能按钮集成问题

时间:2020-07-17 10:34:20

标签: javascript paypal

我已经设置了贝宝付款流程。如果用户单击以“使用PayPal付款”,则会弹出一个弹出窗口,要求用户登录其Paypal帐户,然后从那里进行付款。此流程按原样工作。 我面临的问题是PayPal智能按钮JavaScript SDK提供的“用信用卡或借记卡付款”按钮。单击此按钮时,它不会像“使用贝宝付款”按钮那样打开弹出窗口。而是打开一个内联表单。 我见过一些网站,在这些网站上单击“用信用卡或借记卡付款”按钮会打开一个弹出窗口,其中显示了表单。 我想念什么?我浏览了他们的Smart Buttons API文档,他们没有提到如何在内联渲染和弹出窗口之间切换。 这是我配置SDK的方式:

paypal.Buttons({
    enableStandardCardFields: true,
    locale: 'en_US',
    commit: true,
    style: {
      label: 'pay',
      layout: 'vertical',
      fundingicons: 'true'
    },
    funding: {
      allowed: [ paypal.FUNDING.CARD ]
    },
    onInit: function(data, actions) {
      actions.enable()
    },
    createOrder: function() {
      $('div.loading-container').append('<h2>Processing your payment...</h2>')
      return fetch('/create_order', {
        method: 'post',
        headers: {
          'content-type': 'application/json'
        }
      }).then(function(res) {
        return res.json();
      }).then(function(data) {
        return data.table.id;
      });
    },
    onCancel: function(data) {
      $('div.loading-container').empty()
      return;
    },
    onApprove: function(data) {
      return fetch('/capture_order', {
        method: 'post',
        headers: {
          'content-type': 'application/json'
        },
        body: JSON.stringify({
          orderID: data.orderID
        })
      }).then(function(res) {
        return res.json();
      }).then(function(details) {
        if (details.status == 400) {
          window.location.reload();
          return;
        }
        window.history.pushState({ urlPath:'/orders/thanks' }, "" , '/orders/thanks' );
        window.location.reload();
      })
    }
  }).render('div.paypal_container');

注意:您可以在此link

中找到预期的行为

1 个答案:

答案 0 :(得分:0)

黑色的“借记卡”或“信用卡”按钮始终呈内嵌显示(例外:某些国家/地区未启用该按钮)。大多数人都希望这样做,并认为它很好。

无法使该黑色按钮打开一个窗口。您可以禁用黑色按钮,而只保留普通的PayPal按钮,这具有其他行为。