如何将Paypal Payment与Ruby on Rails集成

时间:2015-06-19 21:09:13

标签: ruby paypal

我使用这个宝石将Paypal集成到Ruby Paypal Ruby SDK中,所以一切都很完美,现在我可以将用户重定向到我的PayPal Sandbox帐户,用户可以确认付款。

用户确认付款后,会通过网址中的PaymentId,Token和PayerId重定向回我的网站。

问题在于,当我想用​​此代码执行付款时

payment = Payment.find(@payment.id)

if payment.execute( :payer_id => params[:PayerId] )
  # Success Message
  # Note that you'll need to `Payment.find` the payment again to access user info like shipping address
else
  payment.error # Error Hash
end
没有任何反应。

2 个答案:

答案 0 :(得分:7)

与Rails应用程序Active Merchant gem的标准PayPal集成:

第1步:

- >在gem文件中添加'gem activemerchant'

- >捆绑安装

第2步:

- >转到“www.developer.paypal.com”并创建一个包含美国地址详细信息的帐户(也称为商家帐户)。

- >它将在“sandbox.paypal.com”中为买方和卖方(别名协调人)创建两个虚拟测试帐户。

例如:
   卖家帐号---> naveengoud-facilitator@gmail.com
买方帐户---> naveengoud-buyer@gmail.com

- >查看测试帐户详细信息单击“仪表板 - >帐户”

- >现在,点击个人资料链接

,为两个测试帐户设置密码

第3步:

- >转到卖家帐户(即协调人)个人资料详细信息并复制API凭据,即用户名,密码和签名

例如:
用户名:naveengoud-facilitator_api1.gamil.com
密码:VSPALJ5ALA5YY9YJ
签名:AVLslxW5UGzEpaDPEK4Oril7Xo4IAYjdWHD​​25HhS8a8kqPYO4FjFhd6A

- >在“config / environments / development.rb”中设置这些API凭据,如下所示,使用API​​凭据添加以下代码

  config.after_initialize do  
ActiveMerchant::Billing::Base.mode = :test         
        ::GATEWAY = ActiveMerchant::Billing::PaypalGateway.new(  
             login: "merchant_api1.gotealeaf.com",  
            password: "2PWPEUKZXAYE7ZHR",  
            signature: "AFcWxV21C7fd0v3bYYYRCpSSRl31A-dRI5VpyF4A9emruhNYzlM8poc0"  
        )  
     end

第4步:

- >从此处开始按照Rails演员阵容145集

PayPal Express Checkout与Rails应用程序ActiveMerchant gem集成:

第1步:

- >在gem文件中添加'gem activemerchant'

- >捆绑安装

第2步:

- >转到“www.developer.paypal.com”并创建一个包含美国地址详细信息的帐户(也称为商家帐户)。

- >它将在“sandbox.paypal.com”中为买方和卖方(别名协调人)创建两个虚拟测试帐户。

例如:
   卖家帐号---> naveengoud-facilitator@gmail.com
买方帐户---> naveengoud-buyer@gmail.com


- >查看测试帐户详细信息单击“仪表板 - >帐户”

- >现在,点击个人资料链接

,为两个测试帐户设置密码

第3步:

- >转到卖家帐户(即协调人)个人资料详细信息并复制API凭据,即用户名,密码和签名

例如:
用户名:naveengoud-facilitator_api1.gamil.com
密码:VSPALJ5ALA5YY9YJ
签名:AVLslxW5UGzEpaDPEK4Oril7Xo4IAYjdWHD​​25HhS8a8kqPYO4FjFhd6A

- >在“config / environments / development.rb”中设置这些API凭据,如下所示,使用API​​凭据添加以下代码

  config.after_initialize do  
ActiveMerchant::Billing::Base.mode = :test         
        ::GATEWAY = ActiveMerchant::Billing::PaypalExpressGateway.new(  
             login: "merchant_api1.gotealeaf.com",  
            password: "2PWPEUKZXAYE7ZHR",  
            signature: "AFcWxV21C7fd0v3bYYYRCpSSRl31A-dRI5VpyF4A9emruhNYzlM8poc0"  
        )  
     end

第4步:

- >从此开始形成关注Rails演员146集 显示更少

- >要查看天气交易是否成功,只需使用卖家帐户登录“sandbox.paypal.com”并点击“所有活动”,然后我们就会看到付款

答案 1 :(得分:0)

我找到的解决方案是在配置paypal SDK时将此代码放在返回URL的页面中

payment = Payment.find(@payment.id)

if payment.execute( :payer_id => params[:PayerId] )
  # Success Message
  # Note that you'll need to `Payment.find` the payment again to access user info like shipping address
else
  payment.error # Error Hash
end