Экспресс-обработка ваучеров (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/