I need to make a payment to Paymill and I want to be able to achieve this using the Ruby language.
UPDATE:
I did publicly release paymill_on_rails on github. It is a Paymill subscription system based on Rails 4.0.0 and paymill-ruby, running on ruby-2.0.0-p247
See also the home project
An example application is also deployed on Heroku. Please feel free to fork & contribute eventually.
I'm doing it using a paymill gem from https://github.com/dkd/paymill-ruby
It's really easy to use, just follow the README and you will have an idea of it's possibilities. It also supports subscriptions.
I managed to achieve this quite easily using the following steps:
Create a new Account at Paymill.
Get the public and private key from the Paymill settings page
Install the activemerchant gem:
gem install activemerchant
I used the following script below in order to make a purchase
Please note that as long as you don't activate your account at Paymill it will run in Test mode. So no money will actually be transferred. They also list test credit cards which will never be debited either.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With