Merb Merchant

This library is a merb specific fork of the awesome gem ActiveMerchant: [activemerchant.org]

It aims for a lower memory footprint (no active_support dependency) and better integration with Merb view, and configuration with Merb::Config

Supported Direct Payment Gateways

The ActiveMerchant Wiki contains a table of features supported by each gateway.

Supported Offsite Payment Gateways

Download

Currently this library is available with git from:

git://github.com/merbjedi/merb_merchant.git

Installation

From Git

You can check out the latest source from git:

> git pull git://github.com/merbjedi/merb_merchant.git

As a Merb Plugin

dependency “merb_merchant”

As a Rails plugin

If you are looking for a Rails Plugin, use the original ActiveMerchant: activemerchant.org

From Ruby Gems

Installation from RubyGems

> gem install merb_merchant

Sample Usage

require 'rubygems'
require 'merb_merchant'

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

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

# The card verification value is also known as CVV2, CVC2, or CID 
credit_card = MerbMerchant::Billing::CreditCard.new(
                :first_name         => 'Bob',
                :last_name          => 'Bobsen',
                :number             => '4242424242424242',
                :month              => '8',
                :year               => '2012',
                :verification_value => '123'
              )

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

  # Create a gateway object for the TrustCommerce service
  gateway = MerbMerchant::Billing::TrustCommerceGateway.new(
              :login => 'TestMerchant',
              :password => 'password'
            )

  # Authorize for the amount
  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