Как отправить подробный счет PayPal пользователю и продавцу? - PullRequest
1 голос
/ 30 марта 2020

Я занимаюсь разработкой веб-сайта с магазином. Пользователь может оплатить через PayPal в этом магазине, и это отлично работает! Корзина для покупок запрограммирована с использованием JavaScript, и это вызвало несколько проблем.

Я изначально хотел иметь функцию JS, которая отправляла бы пользователю электронное письмо с его корзиной, но я мог найти любой код для этого , Я знаю, что вы можете получить подробный чек с помощью PayPal, но моя система не предоставит мне эти данные. Я прочитал часть для разработчиков на сайте PayPal, но, похоже, не могу понять!

Мой скрипт PayPal приведен ниже:

<script>
        paypal.Buttons({
            createOrder: function(data, actions) {
                // This function sets up the details of the transaction, including the amount and line item details.
                return actions.order.create({
                    purchase_units: [{
                        amount: {
                            value: countCartTotal()
                        }
                    }]
                });
            },
            onApprove: function(data, actions) {
                // This function captures the funds from the transaction.
                return actions.order.capture().then(function(details) {
                    // This function shows a transaction success message to your buyer.
                    window.location.href = "orderConfirmed.php"
                    clearCart()
                });
            }
        }).render('#paypal-button-container');
        //This function displays Smart Payment Buttons on your web page.
    </script>

Корзина покупок закодирована в cart. js и я знаю, что могу использовать функцию из этого файла в скрипте PayPal, так как функция countCartTotal () - это то, что сообщает PayPal сумму, взимаемую с клиентов. В моей корзине. js, вот как я добавляю товары в корзину:

function insertItemToDOM(product) {
    cartDOM.insertAdjacentHTML('beforeend', `
    <div class="cart__item">
      <img class="cart__item__image" src="${product.image}" alt="${product.name}">
      <h3 class="cart__item__name">${product.name}</h3>
      <h3 class="cart__item__price">${product.price}</h3>
      <button class="btn btn--primary btn--small${(product.quantity === 1 ? ' btn--danger' : '')}" data-action="DECREASE_ITEM">&minus;</button>
      <h3 class="cart__item__quantity">${product.quantity}</h3>
      <button class="btn btn--primary btn--small" data-action="INCREASE_ITEM">&plus;</button>
      <button class="btn btn--danger btn--small" data-action="REMOVE_ITEM">&times;</button>
    </div>
  `);

    addCartFooter();
}

Мне нужно, чтобы Paypal содержал '$ {product.name}' и '$ {product.quantity}'

1 Ответ

1 голос
/ 31 марта 2020

Предметы go в массиве purchase_units, документированные в v2 / orders . Может быть трудно понять все необходимые параметры разбивки, которые должны сложить, иначе оформление заказа приведет к ошибке и не откроется - так вот пример с двумя пунктами:

"purchase_units": [{
      "description": "Stuff",
      "amount": {
        "value": "20.00",
        "currency_code": "USD",
        "breakdown": {
          "item_total": {
            "currency_code": "USD",
            "value": "20.00"
          },
        }
      },
      "items": [
        {
          "unit_amount": {
            "currency_code": "USD",
            "value": "10.00"
          },
          "quantity": "1",
          "name": "Item 1",
        },
        {
          "unit_amount": {
            "currency_code": "USD",
            "value": "10.00"
          },
          "quantity": "1",
          "name": "Item 2",
        },
      ],
    }
  ]
...