如何将Paypal与Ruby on Rails集成

时间:2014-05-01 15:52:47

标签: ruby-on-rails ruby paypal

我试图使用rest-api-sdk-ruby gem(https://github.com/paypal/rest-api-sdk-ruby)将paypal与我的ruby集成在rails应用程序上,但找不到足够的信息或者是一个很好的教程来支持我。 上面提供的描述虽然提供了必要的代码,但没有说明如何处理每种方法应该使用的方法或文件。

有人可以给我一个起点或者指点一个好的教程吗?

我正在使用rails版本4.

非常感谢。

3 个答案:

答案 0 :(得分:20)

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

第1步

  • 在Gemfile中添加gem 'activemerchant'

  • 运行bundle install

第2步

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

    它将在“sandbox.paypal.com”中创建两个虚拟测试帐户,一个用于买方和卖方(a.k.a.协调员)。查看测试帐户详细信息单击“仪表板 - >帐户”

  • 现在,点击个人资料链接设置两个测试帐户的密码。

第3步

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

    Username:  naveengoud-facilitator_api1.gamil.com
    Password:  VSPALJ5ALA5YY9YJ
    Signature: AVLslxW5UGzEpaDPEK4Oril7Xo4IAYjdWHD25HhS8a8kqPYO4FjFhd6A
    
  • 在“config / environments / development.rb”中设置这些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步

答案 1 :(得分:1)

我参加派对有点晚了但我在PayPal文档中发现了这个

PayPal付款涉及以下3个步骤:

  • 指定付款信息以创建付款。
  • 获得付款批准。
  • 执行付款给PayPal用户的帐户。

1)将意图设置为sale,将payment_method设置为paypal

包含重定向网址。用户在批准或取消付款时会被重定向到这些网址。

curl https://api.sandbox.paypal.com/v1/payments/payment \
  -v \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer accessToken' \
  -d '{
    "intent":"sale",
    "redirect_urls":{
      "return_url":"http://return_URL_here",
      "cancel_url":"http://cancel_URL_here"
    },
    "payer":{
      "payment_method":"paypal"
    },
    "transactions":[
      {
        "amount":{
          "total":"7.47",
          "currency":"USD"
        },
        "description":"This is the payment transaction description."
      }
    ]
  }

响应:

{
  "id":"PAY-6RV70583SB702805EKEYSZ6Y",
  "create_time":"2013-03-01T22:34:35Z",
  "update_time":"2013-03-01T22:34:36Z",
  "state":"created",
  "intent":"sale",
  "payer":{
    "payment_method":"paypal"
  },
  "transactions":[
    {
      "amount":{
        "total":"7.47",
        "currency":"USD",
        "details":{
          "subtotal":"7.47"
        }
      },
      "description":"This is the payment transaction description."
    }
  ],
  "links":[
    {
      "href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6RV70583SB702805EKEYSZ6Y",
      "rel":"self",
      "method":"GET"
    },
    {
      "href":"https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=EC-60U79048BN7719609",
      "rel":"approval_url",
      "method":"REDIRECT"
    },
    {
      "href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6RV70583SB702805EKEYSZ6Y/execute",
      "rel":"execute",
      "method":"POST"
    }
  ]
}

2)获得付款批准

请注意上面示例中的HATEOAS链接。将用户定向到PayPal网站上的approval_url,以便用户可以批准付款。用户必须先批准付款才能执行和完成销售。

3)执行付款

当用户批准付款时,PayPal会将用户重定向到指定的return_url

付款创建时。付款人ID和付款ID会附加到返回网址,PayerIDpaymentId

http://return_url?paymentId=PAY-6RV70583SB702805EKEYSZ6Y&token=EC-60U79048BN7719609&PayerID=7E7MGXCWTTKK2

执行付款时,不需要附加到返回URL的令牌值。

要在用户批准后执行付款,请进行/payment/execute/来电。在请求正文中,使用附加到返回URL的payer_id值。在标题中,使用您在创建付款时使用的访问令牌。

curl https://api.sandbox.paypal.com/v1/payments/payment/PAY-6RV70583SB702805EKEYSZ6Y/execute/ \
  -v \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer accessToken' \
  -d '{ "payer_id" : "7E7MGXCWTTKK2" }'

注意:付款完成后,称为促销。然后,您可以查询销售并退款。

希望它有所帮助!

答案 2 :(得分:1)

深入分步骤程序在这里给出

使用基本的Checkout方法将Paypal集成到您的Rails应用程序中:
Basic Checkout

如果您想接受信用卡付款:
Charge Credit Cards

如果您想接受定期付款:
Recurring Payments

您可以克隆此应用并在本地计算机中进行测试

git clone https://github.com/gotealeaf/paypal-basics
cd paypal-basics
rake db:create
rake db:migrate
rake db:seed
rails s