Я работаю на рынке (покупатели и продавцы), и посредник получает долю с каждой покупки. Я хочу, чтобы покупатель мог купить товар сразу после того, как кнопка покупки будет перенаправлена в Paypal. Это хорошо и работает.
response = ADAPTIVE_GATEWAY.setup_purchase(
:return_url => 'return_url',
:cancel_url => 'cancel_url',
:ipn_notification_url => 'ipn_notification_url',
:receiver_list => recipients,
)
# ADAPTIVE_GATEWAY.set_payment_options(...)
redirect_to (ADAPTIVE_GATEWAY.redirect_url_for(response['payKey']))
Следующим шагом является проверка транзакции с помощью ipn. Я получаю обратный вызов PayPal, но мне непонятно, что нужно вернуть?
def notify_cb
notify = ActiveMerchant::Billing::Integrations::PaypalAdaptivePayment::Notification.new(request.raw_post)
if notify.acknowledge
update_attributes({
:transaction_id => notify.transaction_id,
:status => notify.status
})
end
render :nothing => true # render nothing?!? RENDER_LINE
end
Большинство примеров здесь на SO ничего не отображают (RENDER_LINE), в то время как в документации PayPal процесс описан как ( https://www.x.com/developers/paypal/documentation-tools/ipn/integration-guide/IPNintro#protocol_and_arch):
Протокол IPN состоит из трех шагов:
PayPal отправляет вашему прослушивателю IPN сообщение, уведомляющее вас о событии.
Ваш слушатель отправляет полное неизмененное сообщение обратно в PayPal; сообщение должно содержать те же поля в том же порядке и быть закодировано так же, как исходное сообщение
PayPal отправляет обратно одно слово, которое либо ПРОВЕРЕНО, если сообщение исходит от PayPal, либо НЕДЕЙСТВИТЕЛЬНО, если есть какое-либо несоответствие тому, что было отправлено изначально.
Мой вопрос будет заключаться в том, как вернуть полное неизмененное сообщение обратно в PayPal, или я упускаю / ошибаюсь в своем понимании потока?