Вот как это делается.
В следующем коде будет настроена экспресс-покупка PayPal для 2 товаров с разными ценами (5 и 10 $), плюс налоги (50 центов) без стоимости доставки или обработки.
response = YOUR_PAYPAL_GAETWAY_NAME.setup_purchase(1550,
:subtotal => 1500,
:shipping => 0,
:handling => 0,
:tax => 50,
:ip => CLIENT_IP, # you might want to use "request.remote_ip" method from a controller to obtain this value
:items => [
{:name => 'ITEM_NAME_1', :description => 'ITEM_DESC_1', :amount => 500, :quantity => 1},
{:name => 'ITEM_NAME_2', :description => 'ITEM_DESC_2', :amount => 1000, :quantity => 1}
],
:return_url => 'http://SOME/URL',
:cancel_return_url => 'http://MAYBE/ANOTHER/URL'
)
redirect_to YOUR_PAYPAL_GAETWAY_NAME.redirect_url_for(response.token)
ПРИМЕЧАНИЯ:
Все суммы должны быть в центах
Все 4 опции [: промежуточный итог,: доставка,: обработка,: налог] должны быть указаны, если один или несколько отсутствует, остальные будут игнорироваться, если вам не нужно устанавливать определенную опцию, например, стоимость обработки, просто установите его на ноль, как в примере выше, параметры, установленные на ноль, не появятся на вашей странице PayPal.
: промежуточный итог должен равняться общей цене товара в центах, т. Е. (Предмет1 * количество товара1) + (предмет2 * количество товара2) и т. Д. ...
Общая сумма заказа (в коде установлено значение 1550) должна составлять: подытог +: доставка +: обработка +: налог, иначе PayPal вернет ошибку (недействительная транзакция)