我试图帮助一位朋友(Grails程序员)在使用IPN模拟器测试Paypal IPN监听器时遇到问题:他总是对帖子进行无效响应。 所以我使用Sinatra和http gem写了一个Ruby版本的监听器,但我也遇到了困难。
这是Sinatra服务器的一小段代码:
require 'sinatra'
require 'http'
post '/' do
request.body.rewind
response = HTTP.post("https://ipnpb.sandbox.paypal.com/cgi-bin/webscr", body: "cmd=_notify-validate&#{request.body.read}")
logger.info "response word: #{response.to_s}" # INVALID
logger.info "response code: #{response.code}" # 200
end
我使用ngrok运行了一个隧道到localhost(Sinatra app正在监听的地方)。
该应用程序从Paypal IPN simulator正确接收POST,添加所需的对cmd=_notify-validate
,返回POST。但是响应始终是"无效"。
我试图在Heroku上运行代码但是徒劳无功。
有什么想法吗? 感谢