Ogone for Rails

What is it

A Ruby gem to simplify the use of Ogone online payments service.

Usage

Installation

gem install ogone-rails
# or include in a gemfile
gem 'ogone-rails'

Configuration

Define ogone parameters in a yaml config file:

    # config/ogone.yml
    development:
        pspid: "hoetmaaiers"
        sha_in: "0123456789abcdefghijklmnopqrstuv"
        sha_out: "vutsrqponmlkjihgfedcba9876543210"
        currency: "EUR"
        language: "nl_NL"
        mode: 'test'
    production:
        pspid: "hoetmaaiers"
        sha_in: "0123456789abcdefghijklmnopqrstuv"
        sha_out: "vutsrqponmlkjihgfedcba9876543210"
        currency: "EUR"
        language: "nl_NL"
        mode: 'live'

Deprecated in version >= 0.1.3, configure ogone-rails in an initializer:

    # initializers/ogone.rb
    ogone_config = YAML.load_file('config/ogone.yml')[Rails.env].symbolize_keys
    OgoneRails::config (ogone_config)

Parameters

required

  • PSPID
  • sha_in
  • sha_out

optional

  • currency, default: "EUR"
  • language, default: "nl_NL"
  • mode, default = "live"

Helpers

New syntax

Generate an ogone_form whith the new syntax.

Full example

ogone_form_tag({:id => "form"}) do 
    form_content = ogone_fields({  
        :parameter => value
        ...
      })

    # add custom submit
    form_content << '<input type="submit" value="pay now" />'
end

ogone_form_tag example

ogone_form_tag({ :html_attribute => "value" }) do 
    ...
    # everything in here must be in one variable
    form_content = "…"
    form_content << "…"       
    ...
end

ogone_fields example

Generate hidden input fields with ogone parameters.

ogone_fields({
    :parameter => "value",
    ...
}

Parameters

  ogone_fields_options = {
    # General parameters
    :order_id           => 'orderID',
    :amount             => 'amount',
    :customer_name      => 'CN',
    :customer_email     => 'EMAIL',
    :customer_address   => 'owneraddress',
    :customer_zip       => 'ownerZIP',
    :customer_city      => 'ownertown',
    :customer_country   => 'ownercty',
    :customer_phone     => 'ownertelno',
    # Feedback url's    
    :accept_url         => 'accepturl',
    :decline_url        => 'declineurl',
    :exception_url      => 'exceptionurl',
    :cancel_url         => 'cancelurl',
    # Look and feel     
    :title              => 'TITLE',
    :bg_color           => 'BGCOLOR',
    :text_color         => 'TXTCOLOR',
    :table_bg_color     => 'TBLBGCOLOR',
    :table_text_color   => 'TBLTXTCOLOR',
    :button_bg_color    => 'BUTTONBGCOLOR',
    :button_text_color  => 'BUTTONTXTCOLOR',
    :font_family        => 'FONTTYPE',
    :logo               => 'LOGO'       
  }

No worry, old syntax is still enabled...

ogone_form({
    :paramater => "value"
}, { :html_attribute => "" })

Check Ogone feedback

Create a new object to check the feedback Ogone gives you:

# app/controllers/feedback_controller.rb
@check = OgoneRails::CheckAuth.new( request )

Check valid authorization:

@check.valid?
#return true or false

Get parameters:

@check.get_params

… returns the Ogone feedback in a hash format. The keys are made more readable then Ogone provides them: …

{
    :order_id => 46185, 
    :amount => 299.38, 
    :currency => "EUR", 
    :payment_method => "CreditCard",
    :acceptance => "test123", 
    :status => "Authorized", 
    :card_number => "XXXXXXXXXXXX1111",
    :pay_id => "14838904", 
    :error => nil, 
    :brand => "VISA",
    :sha_sign => "51AF71351E79DD0186816289AD53C57213978E32"
}

Copyright © 2012 Robin Houdmeyers