【发布时间】:2016-10-23 01:37:47
【问题描述】:
我一直在关注 Railscasts 实施 Paypal 标准付款。
在收到 IPN 通知时,我意识到我没有收到诸如
item_name, item_number, & quantity。
经过一番调查,我认为我在控制器中写错了,因为 PayPal 将变量发送为item_name1、item_number1、quantity1、item_name2、item_number2、quantity2 等等
我已经安装了 Railscasts。通知来自控制器
PaymentNotificationsController < ApplicationController
protect_from_forgery except: [:create]
def create
PaymentNotification.create!(params: params,
item_number: params[:item_number], item_name: params[:item_name], quantity: params[:quantity]
render nothing: true
end
如果订单有多个商品,则为item_name1、item_name2、item_name3 等。
命名这些变量的正确方法是什么,以便能够在不为每个额外项目添加列的情况下接受 paypal IPN 通知?
提前致谢!
【问题讨论】:
-
您可以在致电
PaymentNotification.create!之前查看params。执行if params.include?(:item_name1)来检查是否有这样的键,如果有,通过循环item_name2、item_name3等参数来检查有多少项,直到找到缺少的参数。 -
@RoryO'Kane 如果你不介意,你能写一个例子作为答案吗?
标签: ruby-on-rails ruby paypal paypal-ipn