Причина, по которой вы не можете переопределить сумму динамически, заключается в том, что у вас есть так называемая «кнопка, размещенная в 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. E.g. BUYNOW
BUTTONCODE=The type of code you want to get back. E.g. HOSTED
L_BUTTONVAR0=amount=The new amount with a period as separator
L_BUTTONVAR1=item_name=Optional: a new item name if you wish
Похоже, вы также можете использовать BMCreateButton API для создания новой кнопки или использовать BMButtonSearch API дляпоиск по списку всех ваших сохраненных размещенных кнопок (например, чтобы автоматически найти hosted_button_id вашей кнопки)
Причина использования размещенной кнопки в том, что она более безопасна.Не размещенная, незашифрованная кнопка в основном оставит суммы открытыми для манипуляций.Мошеннические транзакции, ожидающие выполнения.