我在一个市场(买家和卖家)工作,中间人从每次购买中分一杯羹。我想让买家在购买按钮被重定向到 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 验证交易。我确实收到了贝宝回调,但我不清楚应该返回什么?
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),而在贝宝文档中,流程被描述为(https://www.x.com/developers/paypal/documentation-tools/ipn/integration-guide/IPNIntro#protocol_and_arch ):
IPN 协议由三个步骤组成:
PayPal 向您的 IPN 侦听器发送一条消息,通知您该事件
您的听众将完整的未更改消息发送回 PayPal;消息必须以相同的顺序包含相同的字段,并以与原始消息相同的方式进行编码
PayPal 会返回一个单词,如果消息来自 PayPal,则为 VERIFIED,如果与最初发送的消息有任何差异,则为 INVALID
我的问题是如何将完整的未更改消息返回给 PayPal,或者我对流程的理解缺失/错误?