IPN Paypal может быть немного привередливым, если я правильно помню (вы действительно должны дать им точно , что они отправили с приложенным вашим сообщением, или ничего не работает).
Вам, вероятно, следует захватить необработанные данные поста в вашем контроллере, добавить к нему строку и создать своего рода HTTP-запрос с вашими необработанными данными поста, прежде чем отправлять его обратно. Я помню, как делал это в последний раз, когда я использовал IPN PayPal, и он работал относительно хорошо.
Я бы использовал ActionController # raw_post и просто изменил бы его перед отправкой запроса обратно в PayPal. Также имейте в виду, что есть время ожидания для ответов IPN (я думаю), и PayPal может отправить вам несколько уведомлений с точно такими же данными, если они не вернут то, что они ожидают, поэтому вы, вероятно, захотите отправить им запрос непосредственно перед ваш код делает что-нибудь еще.