2014-11-14 6 views
0

Я пользуюсь экспресс-оплатой в Paypal и пытаюсь передать скидку в виде отдельного товара (в соответствии с руководством, которое поддерживается).Paypal Express Checkout предоставляет полную скидку на товары

Переходит следующую часть (полную скидку по данному вопросу, но требует оплатить доставку):

&NOSHIPPING=0 
&PAYMENTREQUEST_0_SHIPPINGAMT=2.00 
&PAYMENTREQUEST_0_SHIPDISCAMT=0.00 
&L_PAYMENTREQUEST_0_NAME0=Item1 
&L_PAYMENTREQUEST_0_QTY0=1 
&L_PAYMENTREQUEST_0_AMT0=25.90 
&L_PAYMENTREQUEST_0_NAME1=Discount 
&L_PAYMENTREQUEST_0_QTY1=1 
&L_PAYMENTREQUEST_0_AMT1=-25.90 
&PAYMENTREQUEST_0_ITEMAMT=0.00 
&PAYMENTREQUEST_0_AMT=2.00 

Но я получаю «Итогов сумм телеги элементов не соответствуют суммам заказа.» Я проверил множество случаев, и кажется, что все другие проблемы, с которыми люди столкнулись, уже рассмотрены в моем примере, но это все еще не работает.

Любые подсказки? Спасибо!

ответ

1

Насколько я знаю, «ITEMAMT» не должен быть равен нулю. Он должен быть больше нуля. Таким образом, если вы используете, как это, он должен работать:

&NOSHIPPING=0 

&PAYMENTREQUEST_0_SHIPPINGAMT=2.00 

&PAYMENTREQUEST_0_SHIPDISCAMT=0.00 

&L_PAYMENTREQUEST_0_NAME0=Item1 

&L_PAYMENTREQUEST_0_QTY0=1 

&L_PAYMENTREQUEST_0_AMT0=25.91 

&L_PAYMENTREQUEST_0_NAME1=Discount 

&L_PAYMENTREQUEST_0_QTY1=1 

&L_PAYMENTREQUEST_0_AMT1=-25.90 

&PAYMENTREQUEST_0_ITEMAMT=0.01 

&PAYMENTREQUEST_0_AMT=2.01 
+0

Да, я провел несколько тестов, и был ответить с этим же ответом. Если ITEMAMT 0 он собирается дать вам эту ошибку, независимо из того, складывается или нет математика. Когда я сделал небольшую корректировку, поэтому ITEMAMT действительно имел значение, тогда она работала нормально. –

+0

@AndrewAngell Но есть ли какой-либо стандартный способ предоставить полную скидку клиенту и запросить оплату только за Я думаю, что это довольно простое деловое дело, о котором многие торговцы могут попросить. Кроме того, это 0 для ITEMATM не запрещено руководствами по PayPal, однако AMT (всего с доставкой) не может быть 0, что имеет смысл. Это настолько странно, что Paypal имеет такое искусственное ограничение реальной жизни :( – Volder

+0

Мне немного удивительно, что они тоже этого не допускают. Кажется, я даже делал это раньше, но, наверное, нет. Единственное, что я могу вспомнить, это оставить элементы из запроса, поэтому вам не нужно отправлять ITEMAMT. –

0

Я получил ответ от официальной поддержки Paypal:

PAYMENTREQUEST_0_ITEMAMT - не может быть равен нулю.

Два варианта: Либо уменьшите скидку в разделе основных товаров на 0.01, делая общую стоимость товара ITEMAMT 0.01, а затем дополнительно отправляйте скидку от 0.01 (балансируя окончательную сумму).

PAYMENTREQUEST_0_PAYMENTACTION=Sale 
<!-- Item 1--> 
L_PAYMENTREQUEST_0_NAME0=Item1 
L_PAYMENTREQUEST_0_QTY0=1 
L_PAYMENTREQUEST_0_AMT0=25.90 

<!-- Iteam 2--> 
L_PAYMENTREQUEST_0_NAME1=Discount 
L_PAYMENTREQUEST_0_QTY1=1 
L_PAYMENTREQUEST_0_AMT1=-25.89 
<!--Total of items amount--> 
PAYMENTREQUEST_0_ITEMAMT=0.01 

<!-- Shipping/tax/handling etc--> 
PAYMENTREQUEST_0_SHIPPINGAMT=2.00 
PAYMENTREQUEST_0_SHIPDISCAMT= -0.01 
<!-- Total amount --> 
PAYMENTREQUEST_0_AMT=2.00 

Другой вариант заключается в перемещении стоимости доставки в пункты раздела:

L_PAYMENTREQUEST_0_NAME0=Item1 
L_PAYMENTREQUEST_0_QTY0=1 
L_PAYMENTREQUEST_0_AMT0=0.00 
<!-- Iteam 2--> 
L_PAYMENTREQUEST_0_NAME1=shipping cost 
L_PAYMENTREQUEST_0_QTY1=1 
L_PAYMENTREQUEST_0_AMT1=2.00 
<!--Total of items amount--> 
PAYMENTREQUEST_0_ITEMAMT=2.00 
PAYMENTREQUEST_0_AMT=2.00 

На мой вопрос - почему они не осуществляют его должным образом, у меня нет никакого ответа.

Таким образом, мы оставили, чтобы использовать один из этих сумасшедших обходных ((