Paypal NVP API Возврат общей суммы покупателя, включая доставку через RefundTransaction

В моем магазине я должен иметь возможность отменить заказ клиента и вернуть ему общую сумму, которую он заплатил.

На кассе PayPal клиенту указывается стоимость его товаров и стоимость доставки, а затем общая стоимость. Когда я пытаюсь оформить полный возврат через API NVP, он только возмещает сумму за товары и не включает стоимость доставки, которую они заплатили.

Есть ли способ удостовериться в том, что возмещается абсолютная общая сумма?

Первоначально я прошел только через идентификатор транзакции PayPal, так как по умолчанию автоматически возвращается полный возврат средств,

    'TRANSACTIONID' => $paypalTransactionId

но я получил следующее в данных, переданных из API.

    ["TOTALREFUNDEDAMOUNT"]=> string(5) "64.40"

Общая сумма должна была быть 69,40. (64,00 для продуктов и 5,00 для доставки).

Я сам пытался пройти через общую сумму (AMT), но API жалуется, что возврат должен быть меньше или равен стоимости продуктов.

    'TRANSACTIONID' => $paypalTransactionId,
'AMT' => $totalPrice,
'REFUNDTYPE' => 'Full'

А также попытался пройти через сумму доставки

    'TRANSACTIONID' => $paypalTransactionId,
'SHIPPINGAMT' => $shipping_price,
'REFUNDTYPE' => 'Full'

Никто не делает работу.

Один из возможных способов обойти это — не передавать стоимость доставки через Paypal при оформлении заказа покупателем и просто смешивать ее со стоимостью продуктов. Но это не будет оптимальным опытом для клиентов и выглядит как-то странно.

PayPal RefundTransaction docs

0

Решение

Вы должны вытащить промежуточный итог из вашей системы для возврата вместо общей суммы. Простое решение, хотя. Если вы делаете полный возврат средств, просто оставьте параметры AMT и REFUNDTYPE вне запроса. Это будет по умолчанию полный возврат средств. Это требуется только в том случае, если вы делаете частичное возмещение.

0

Другие решения

Я исправил это, оказывается, ошибка была в оригинальной покупке. Когда клиент делает заказ, я отправил в PayPal следующее:

[AMT] => 60.00 // this amount should contain total including shipping
[ITEMAMT] => 60.00
[SHIPPINGAMT] => 4.99

Но клиент все равно был обвинен в правильных 64,99.

Добавление стоимости доставки к [AMT] приводит к тому, что с клиента по-прежнему взимается 64,99 (а не 69,98, как я бы думал).

[AMT] => 64.99
[ITEMAMT] => 60.00
[SHIPPINGAMT] => 4.99
0

По вопросам рекламы [email protected]