web-dev-qa-db-ja.com

PaypalをRuby on Railsと統合する方法

私はPaypalをmy Ruby on Rails application with the rest-api-sdk-Ruby gem( https:// github。 com/Paypal/rest-api-sdk-Ruby )ですが、十分な情報や、バックアップするための適切なチュートリアルが見つかりませんでした。上記の説明は、必要なコードを提供していますが、各メソッドの移動先またはファイル内のメソッド。

誰かが私にここから出発点を教えてもらえますか、または私に良いチュートリアルを教えてもらえますか?

私はRailsバージョン4を使用しています。

どうもありがとう。

19
user3462261

Rails app Active Merchant gemとの標準Paypal統合

ステップ1

  • Gemfileにgem 'activemerchant'を追加します

  • bundle installを実行します

ステップ2

  • " developer.Paypal.com "に移動し、米国の住所の詳細を含むアカウント(マーチャントアカウント)を作成します。

    「sandbox.Paypal.com」に2つのダミーテストアカウントが作成されます。テストアカウントの詳細を表示するには、「ダッシュボード->アカウント」をクリックします。

  • 次に、プロファイルリンクをクリックして、両方のテストアカウントのパスワードを設定します。

ステップ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

21

詳細なステップバイステップ手順はここに与えられています

PaypalをRailsアプリケーションに基本的なCheckoutメソッドで統合する:
基本的なチェックアウト

支払いにクレジットカードを使用する場合:
チャージクレジットカード

定期的な支払いを受け入れる場合:
定期的な支払い

このアプリを複製してローカルマシンでテストできます

git clone https://github.com/gotealeaf/Paypal-basics
cd Paypal-basics
rake db:create
rake db:migrate
rake db:seed
Rails s
1
Chetan Datta

私はパーティーに少し遅れましたが、Paypalのドキュメントでこれを見つけました

Paypalの支払いには、次の3つのステップが含まれます。

  • 支払い情報を指定して支払いを作成します。
  • 支払い承認を取得します。
  • Paypalユーザーのアカウントへの支払いを実行します。

1)インテントをsaleに設定し、payment_methodをPaypalに設定します。

リダイレクトURLを含めます。ユーザーは、支払いを承認またはキャンセルすると、これらのURLにリダイレクトされます。

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リンクに注意してください。ユーザーにapproval_url Paypalサイトで、ユーザーが支払いを承認できるようにします。販売を実行して完了するには、ユーザーが支払いを承認する必要があります。

3)支払いを実行する

ユーザーが支払いを承認すると、Paypalはユーザーを指定されたreturn_urlにリダイレクトします

支払いが作成されたとき。支払人IDと支払IDは、PayerIDおよびpaymentIdのように、戻りURLに追加されます。

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

支払いを実行するときに、戻りURLに追加されたトークン値は必要ありません。

ユーザーの承認後に支払いを実行するには、/payment/execute/呼び出し。リクエストの本文では、payer_id戻りURLに追加された値。ヘッダーでは、支払いの作成時に使用したアクセストークンを使用します。

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" }'

注:支払いが完了すると、販売と呼ばれます。その後、セールを調べて払い戻します。

それが役に立てば幸い!

1
Stef Hej