Как сделать платеж через Paymill с помощью Ruby

Мне нужно сделать платеж Paymill, и я хочу добиться этого, используя язык Ruby.

ОБНОВИТЬ:

Я публично выпустил paymill_on_rails на github. Это система подписки Paymill, основанная на Rails 4.0.0 и paymill-ruby, работающая на ruby-2.0.0-p247.

Смотрите также домашний проект

Пример приложения также развернут на Heroku. Пожалуйста, не стесняйтесь в конечном итоге внести свой вклад.

2 ответа

Решение

Мне удалось достичь этого довольно легко, используя следующие шаги:

  1. Создайте новую учетную запись на Paymill.

  2. Получить открытый и закрытый ключ на странице настроек Paymill

  3. Установите активную драгоценность:

    gem install activemerchant
    
  4. Я использовал следующий скрипт ниже, чтобы сделать покупку

Обратите внимание, что пока вы не активируете свою учетную запись в Paymill, она будет работать в тестовом режиме. Таким образом, деньги на самом деле не будут переведены. Они также перечисляют тестовые кредитные карты, которые никогда не будут списаны.

Сценарий:

require 'rubygems'
require 'active_merchant'
require 'json'

# Use the TrustCommerce test servers
ActiveMerchant::Billing::Base.mode = :test

gateway = ActiveMerchant::Billing::PaymillGateway.new(
    :public_key => 'MY_PAYMILL_PUBLIC_KEY', 
    :private_key => 'MY_PAYMILL_PRIVATE_KEY')

gateway.default_currency = 'USD'

# ActiveMerchant accepts all amounts as Integer values in cents
amount = 1000  # $10.00

# The card verification value is also known as CVV2, CVC2, or CID
credit_card = ActiveMerchant::Billing::CreditCard.new(
    :first_name         => 'Bob',
    :last_name          => 'Bobsen',
    :number             => '5500000000000004',
    :month              => '8',
    :year               => Time.now.year+1,
    :verification_value => '000')

# Validating the card automatically detects the card type
if credit_card.valid?

# Capture the amount from the credit card
response = gateway.purchase(amount, credit_card)

if response.success?
puts "Successfully charged $#{sprintf("%.2f", amount / 100)} to the credit card #{credit_card.display_number}"
else
raise StandardError, response.message
end
end

Я делаю это, используя драгоценный камень Paymill от https://github.com/dkd/paymill-ruby

Он действительно прост в использовании, просто следуйте инструкциям README, и у вас будет представление о его возможностях. Он также поддерживает подписки.

Другие вопросы по тегам