关于 PayPal Api with Form

问题描述 投票:0回答:0

我已经使用来自 paypal 的单选列表选项生成了以下表格

现在我需要在这个表格上添加一些输入,如下所示。

Stacking Fee and Delivery Fee 必须插入。 送货费将保持不变,但Iron BarkStacking Fee收费将取决于用户选择的数量。

Iron bark price = $250 x QTY
Stacking Fee = $25 x QTY

所以当用户点击 paypal 按钮付款时,然后在 paypal 结帐页面:

我尝试修改 PayPal 生成代码但它不起作用,paypal 不允许修改自动生成的代码:

function initPayPalButton() {
var shipping = 50;
//var stackfee = 25;
var itemOptions = document.querySelector("#smart-button-container #item-options");
var quantity = parseInt(10);
var quantitySelect = document.querySelector("#smart-button-container #quantitySelect");
if (!isNaN(quantity)) {
  quantitySelect.style.visibility = "visible";
}
var orderDescription = '';
if(orderDescription === '') {
  orderDescription = 'Item';
}
paypal.Buttons({
  style: {
    shape: 'rect',
    color: 'gold',
    layout: 'vertical',
    label: 'paypal',
    tagline: 'false',
    
  },
  createOrder: function(data, actions) {
    var selectedItemDescription = itemOptions.options[itemOptions.selectedIndex].value;
    var selectedItemPrice = parseFloat(itemOptions.options[itemOptions.selectedIndex].getAttribute("price"));
    var tax = (10 === 0 || false) ? 0 : (selectedItemPrice * (parseFloat(10)/100));
    if(quantitySelect.options.length > 0) {
      quantity = parseInt(quantitySelect.options[quantitySelect.selectedIndex].value);
    } else {
      quantity = 1;
    }

    tax *= quantity;
    tax = Math.round(tax * 100) / 100;
    var priceTotal = quantity * selectedItemPrice + parseFloat(shipping) + tax;
    priceTotal = Math.round(priceTotal * 100) / 100;
    var itemTotalValue = Math.round((selectedItemPrice * quantity) * 100) / 100;

    return actions.order.create({
      purchase_units: [{
        description: orderDescription,
        amount: {
          currency_code: 'AUD',
          value: priceTotal,
          breakdown: {
            item_total: {
              currency_code: 'AUD',
              value: itemTotalValue,
            },
            shipping: {
              currency_code: 'AUD',
              value: shipping,
            },
            
            tax_total: {
              currency_code: 'AUD',
              value: tax,
            }
          }
        },
        items: [{
          name: selectedItemDescription,
          unit_amount: {
            currency_code: 'AUD',
            value: selectedItemPrice,
          },
          quantity: quantity
        }]
      }]
    });
  },
  onApprove: function(data, actions) {
    return actions.order.capture().then(function(orderData) {
      
      // Full available details
      console.log('Capture result', orderData, JSON.stringify(orderData, null, 2));

      // Show a success message within this page, e.g.
      const element = document.getElementById('paypal-button-container');
      element.innerHTML = '';
      element.innerHTML = '<h3>Thank you for your payment!</h3>';

      // Or go to another URL:  actions.redirect('thank_you.html');

    });
  },
  onError: function(err) {
    console.log(err);
  },
}).render('#paypal-button-container');

}

javascript php paypal
© www.soinside.com 2019 - 2024. All rights reserved.