Paypal Express - добавьте скидку
В настоящее время я отправляю регулярную транзакцию в Paypal Express и добираюсь до шлюза без ошибок.
Теперь я хочу настроить корзину, чтобы отправить скидку на шлюз. Моя первая мысль состояла в том, чтобы изменить значение "AMT", которое отправлено на шлюз. Однако, похоже, Paypal проверяет поле "AMT", вычисляя общее количество полей ITEMAMT
, TAXAMT
и SHIPPINGAMT
, чтобы гарантировать, что общее значение не изменяется:
[L_AMT0] => 49.99
[L_NUMBER0] => 3706{3}8
[L_QTY0] => 1
[L_TAXAMT0] => 0.00
[ITEMAMT] => 49.99
[TAXAMT] => 0
[SHIPPINGAMT] => 14.95
[AMT] => 64.94
Сколько я отправляю скидку на Paypal? Я просмотрел документацию, которую я могу найти, без везения; аналогичные вопросы здесь на SO тоже не помогли. Спасибо.
Изменить: я заметил, что могу пройти через поле SHIPDISCAMT
. Я не знаю, позволит ли это мне сделать то, что мне нужно, хотя я все еще получаю ошибки, указывающие на то, что "несовместимо".
Ответы
Ответ 1
Получил это.
Оказывается, вы можете передать отрицательную сумму в виде позиции и пометить ее как скидку самостоятельно. Мне пришлось добавить код выше:
$params['L_NAME1'] = 'Discount Coupon';
$params['L_AMT1'] = -$discountCodeAmount;
$params['L_QTY1'] = 1;
$params['ITEMAMT'] -= $discountCodeAmount;
$params['AMT'] -= $discountCodeAmount;
Это имело следующий эффект:
![enter image description here]()
Я нашел ответ в этом PDF файле:
https://cms.paypal.com/cms_content/CA/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf
По какой-то причине эта информация не была предоставлена в нескольких других официальных документах/документах PayPal, которые я прочитал.
Ответ 2
Я использовал метод отрицательной ценовой позиции для достижения скидки, но столкнулся с проблемой - если значение скидки равно цене продукта, например. такие как:
[L_NAME0] => Product #1
[L_COST0] => 18.99
[L_QTY0] => 1
[L_NAME1] => Discount
[L_COST1] => -18.99
[L_QTY1] => 1
[ITEMAMT] => 0.00
[FREIGHTAMT] => 15.00
[HANDLINGAMT] => 0.00
Затем он выдает ошибку PayPal "Ошибка формата поля: 10431 - Недопустимая сумма элемента.".
Однако удаление продукта со скидкой и отправка вместо него поля "СКИДКА" устранили эту проблему и дали новую:-)
PayPal всегда показывает это поле как "Скидка на доставку", в то время как на самом деле это скидка на товары.
По крайней мере, он работает...
Ответ 3
Пожалуйста, обратитесь к этому URL-адресу Paypal
Список переменных HTML
<input type="hidden" name="discount_amount_cart" id="discount_amount_cart" value="3.00">
С помощью этих параметров вы можете отправить Широкую скидку на корзину (discount_amount_cart), Скидка на скидку (discount_amount). Вы можете найти более подробную ссылку. Не забудьте передать значение "Положительное целое". PayPal Не принимает отрицательное значение.