Как интегрировать Paypal с Ruby on Rails

Я пытаюсь интегрировать paypal с моим ruby ​​на приложении rails, используя жемчуг rest-api-sdk-ruby (https://github.com/paypal/rest-api-sdk-ruby), но не смог найти достаточную информацию или хороший учебник, чтобы поддержать меня. Приведенное выше описание, хотя и содержит необходимый код, не показывает, как обрабатывать методы или в каких файлах должен идти каждый метод.

Может ли кто-нибудь дать мне отправную точку здесь или указать мне хороший учебник?

Я использую рельсы версии 4.

Большое спасибо.

Ответы

Ответ 1

Стандартная интеграция PayPal с Rails активным купеческим камнем

Шаг 1

  • Добавьте gem 'activemerchant' в свой Gemfile

  • Выполнить bundle install

Шаг 2

  • Перейдите к " developer.paypal.com" и создайте учетную запись (также известную как Merchant Account) с данными о адресе в США.

    Он создаст две фиктивные тестовые учетные записи: по одному для покупателя и продавца (посредник a.k.a.) в "sandbox.paypal.com". Чтобы просмотреть сведения о тестовых учетных записях Нажмите "Панель мониторинга → Учетные записи"

  • Теперь установите пароль для обеих учетных записей, нажав на ссылку профиля.

Шаг 3

  • Перейдите к профилю профиля продавца (например, фасилитатору) и скопируйте Credentials API, то есть имя пользователя, пароль и подпись. Например:

    Username:  naveengoud-facilitator_api1.gamil.com
    Password:  VSPALJ5ALA5YY9YJ
    Signature: AVLslxW5UGzEpaDPEK4Oril7Xo4IAYjdWHD25HhS8a8kqPYO4FjFhd6A
    
  • Установите эти учетные данные API в "config/environment/development.rb" следующим образом:

    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

Ответ 2

В глубину Пошаговая процедура приведена здесь

Интеграция 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

Ответ 3

Я немного опаздываю на вечеринку, но я нашел это в документах PayPal

Платежи PayPal включают эти три шага:

  • Укажите платежную информацию для создания платежа.
  • Получить одобрение платежа.
  • Выполните платеж в учетной записи пользователя 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

когда платеж был создан. Идентификатор плательщика и идентификатор платежа добавляются к URL-адресу возврата, как PayerID и paymentId:

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

Примечание. Как только платеж будет завершен, он называется продажей. Затем вы можете просмотреть продажу и вернуть ее.

Надеюсь, что это поможет!