Экспресс-обработка ваучеров (AMOUNT_MISMATCH)

После обновления до API PayPal REST у нас возникла проблема с нашей экспресс-проверкой.

При использовании Express Checkout пользователь сначала будет отправлен на сайт Paypal для аутентификации, чтобы мы могли получить его адресные данные.

на этом этапе устанавливаются следующие значения:

Создать платеж

    "transactions": [
    {
      "amount": {
        "currency": "EUR",
        "total": "11.95",
        "details": {
          "shipping": "2.00",
          "subtotal": "9.95"
        }
      },
      "item_list": {
        "items": [
          {
            "quantity": "1",
            "name": "Some item :)",
            "price": "9.95",
            "currency": "EUR",
            "sku": "123"
          }
        ]
      }
    }
  ]

Вернувшись на нашу страницу оформления заказа, пользователь имеет возможность применить ваучер к своему заказу. Мы не уверены, как отразить это изменение в API REST PayPal.

В старом API мы использовали для создания нового элемента в item_list с отрицательной ценой.

Есть ли синусный способ в REST API для обновления item_list после аутентификации?

Обе команды Обновления и Выполнения платежа поддерживают только новое значение для объекта "сумма", но не для "item_list". Если мы отправляем новую (дисконтированную) сумму следующим образом, мы получаем ошибку AMOUNT_MISMATCH, потому что новая "сумма" больше не отражает "item_list".

Выполнить платеж

"transactions": [
    {
      "amount": {
        "currency": "EUR",
        "total": "6.95",
        "details": {
          "shipping": "2.00",
          "subtotal": "4.95"
        }
      }
    }
  ]

Результаты в

Error code : 400 with response : {"name":"AMOUNT_MISMATCH","message":"The totals of the cart item amounts do not match sale amounts"}

Как правильно применять ваучер? Предложения?

1 ответ

Вы можете указать сумму скидки или процент, используя discount переменная, см. https://developer.paypal.com/docs/api/

Другие вопросы по тегам