贝宝智能付款引发错误,但仍在处理付款

时间:2020-04-02 02:29:28

标签: javascript paypal paypal-rest-sdk

我有一个客户网站,他们要求在其网站上进行借方/贷方付款,我已经设置了智能付款设置,并且在该网站上似乎还可以,但是,我只是添加了一个检索网址中的变量(价格)智能按钮抛出错误代码,并且我认为这是因为要从网址中获取金额变量的javascript部分。但是,无论错误代码。

下面是我的代码示例

function getQueryVariable(variable)
{
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] == variable){return pair[1];}
       }
       return(false);
}
var sel = getQueryVariable("price");

  paypal.Buttons({
    createOrder: function(data, actions) {
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: sel
          }
        }]
      });
    },
    onApprove: function(data, actions) {
      return actions.order.capture().then(function(details) {
        alert('Transaction completed by ' + details.payer.name.given_name);
      });
    }
  }).render('#paypal-button-container');

1 个答案:

答案 0 :(得分:0)

尝试在成功时进行window.location.href重定向,而不是显示警报,一切都应该很好

或者,您可以在呈现按钮之前保存对按钮的引用,然后在成功时将其关闭,并使用任何成功消息更新页面。

(未经测试)之类的东西:

  window.myButtons = paypal.Buttons({
    createOrder: function(data, actions) {
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: sel
          }
        }]
      });
    },
    onApprove: function(data, actions) {
      return actions.order.capture().then(function(details) {
        alert('Transaction completed by ' + details.payer.name.given_name);
        window.myButtons.close();
        document.getElementById('paypal-button-container').innerHTML = '<pre>' + JSON.stringify(details, null, 4) + '</pre>';
      });
    }
  });
  window.myButtons.render('#paypal-button-container');