Я пытаюсь отправить общую сумму, которую должен заплатить клиент, с <input type="hidden" name="amount" value="{$total}">
где {$total}
содержит общую сумму (smarty), но когда Я нажимаю кнопку «Купить сейчас» в PayPal, она показывает сумму, которую нужно заплатить как 0,00. Что не так? Мой код:
Total : {$total} <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_s-xclick"> <input type="hidden" name="hosted_button_id" value="SVXVEBF9CH4YU"> <input type="hidden" name="amount" value="{$total}"> <input type="image" src="http://img.ruphp.com/php/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal — The safer, easier way to pay online."> <img alt="" border="0" src="http://img.ruphp.com/php/pixel.gif" width="1" height="1"> </form>
Я тестирую его в localhost
, это создает эту проблему?
Причина, по которой вы не можете переопределить сумму динамически, заключается в том, что у вас есть так называемая «кнопка размещения в PayPal».
При размещенной кнопке сумма сохраняется на стороне PayPal и не может быть перезаписана переменной «сумма». Вы либо захотите использовать незанятую кнопку (как Питер Сизковски использует в своем ответе), либо использовать вызов API BMUpdateButton для динамического обновления суммы кнопки.
Пример запроса для BMUpdateButton будет выглядеть следующим образом:
USER=Your API username PWD=Your API password SIGNATURE=Your API signature VERSION=82.0 HOSTEDUBTTONID=The value of <input type="hidden" name="hosted_button_id" value=""> BUTTONTYPE=The type of button. Eg BUYNOW BUTTONCODE=The type of code you want to get back. Eg HOSTED L_BUTTONVAR0=amount=The new amount with a period as separator L_BUTTONVAR1=item_name=Optional: a new item name if you wish
Similary, вы также можете использовать API BMCreateButton для создания новой кнопки или использовать BMButtonSearch API для поиска по списку всех сохраненных размещенных кнопок (например, чтобы найти host_button_id вашей кнопки автоматически)
Причина использования размещенной кнопки заключается в том, что она более безопасна. Не размещенная, незашифрованная кнопка в основном оставит суммы открытыми для манипуляций. Мошеннические транзакции ждут.
paypal сумма ключ amount_1
, а не amount
так …
<input type="hidden" name="amount_1" value="{$total}">
Редактировать:
Это отлично работает для меня.
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" name="platnosci"> <input type="hidden" name="cmd" value="_cart"> <input type="hidden" name="upload" value="1"> <input type="hidden" name="business" value="arest@arest.pl"> <input type="hidden" name="notify_url" value="http://www.google.pl/paypal.php"> <input type="hidden" name="item_name_1" value="Item description"> <input type="hidden" name="amount_1" value="34.00"> <input type="hidden" name="currency_code" value="PLN"> <input type="hidden" name="shopping_url" value="http://www.arest.pl"> <input type="hidden" name="email" value="tester"> <input type="submit"> </form>
Убедитесь, что ваш {$ total} не пуст.
Просто попробуйте этот код
<input name=AMT value="{$total}">
Исправленный,
<input type="hidden" name="amount" value={$total}>