Я знаю, что это старая ветка, но я хотел бы поделиться своим опытом с другими, которые ищут то же самое, и, может быть, это не применимо тогда, но сейчас это применимо, по крайней мере, в песочнице, то есть я не проверял это реальная сделка
При добавлении отправляемых вами элементов в PayPal вы отправляете это
L_PAYMENTREQUEST_0_QTY0 = 1
L_PAYMENTREQUEST_0_AMT0 = 1,00
L_PAYMENTREQUEST_0_NAME0 = название моего товара 0
L_PAYMENTREQUEST_0_NUMBER0 = myitem0id
Затем мы добавляем еще один элемент
L_PAYMENTREQUEST_0_QTY1 = 1
L_PAYMENTREQUEST_0_AMT1 = 1,00
L_PAYMENTREQUEST_0_NAME1 = название моего элемента 1
L_PAYMENTREQUEST_0_NUMBER1 = myitem1id
А теперь добавим купон
L_PAYMENTREQUEST_0_QTY2 = 1
L_PAYMENTREQUEST_0_AMT2 = -0,50
L_PAYMENTREQUEST_0_NAME2 = название моего купона
L_PAYMENTREQUEST_0_NUMBER2 = mycouponcode
А затем мы добавляем промежуточный итог и итоговые значения
PAYMENTREQUEST_0_AMT = 1,50
AMT = 1,50
Я думаю, что PayPal делает рекламу всех итогов, поэтому для этого заказа это будет примерно так:
1,00 + 1,00-0,50 = 1,50
Затем сравнивает его с общей суммой
если они совпадают, то это ход, клиент видит это как дополнительный элемент, но, очевидно, со знаком минус, эта картинка ниже из транзакции экспресс-оплаты в песочнице PayPal