从我收集的几个 stackoverflow 帖子中,当用户取消贝宝定期付款时,会向 IPN 设置中设置的指定 URL 发送即时付款通知。但我无法收集的是查询字符串中发送到此 url 的数据。我遇到了这个链接:
https://www.paypal.com/cgi-bin/webscr?cmd=p/acc/ipn-subscriptions-outside
它提供了一个变量列表,我假设这些变量是使用 IPN 设置中指定的 url 发送的查询字符串的一部分。如果这是真的,那么这意味着我知道这个通知是取消通知,因为 txn_type 值将是“subscr_cancel”。
但是,我仍然需要知道实际上取消了哪些经常性计划。因此,我需要知道循环配置文件令牌才能将其作为查询字符串中的变量进行访问。
只是为了让您了解我在这里尝试做什么,这里有一些示例代码:
def notify_url
if params[:txn_type] == "subscr_cancel"
item_id = Order.where(paypal_recurring_profile_token: params[:recurring_profile_token]).unit_id_for_plan
agent_host = CONFIG["agent_#{Rails.env}"]["host"]
agent_port = CONFIG["agent_#{Rails.env}"]["port"]
url = "http://#{agent_host}:#{agent_port}/home/deactivate?item_id=#{item_id}"
begin
resp = Net::HTTP.get(URI.parse(url))
resp = JSON.parse(resp)
puts "resp is: #{resp}"
true
rescue => error
raise "Error: #{error}"
end
if resp["status"] == "success"
true
end
end
end
我需要知道的是,当发送取消定期计费的通知时,txn_type 是否等于 subscr_cancel?@PP_MTS_Chad 已经确认包含 recurring_payment_id。我只需要知道 txn_type 是否也包括在内。