Coder Social home page Coder Social logo

active_merchant_ogone's Introduction

ActiveMerchantOgone

A plugin for Ogone support in ActiveRecord.

Installation

Requirements

First you need the ActiveMerchant gem / rails-plugin installed. More info about ActiveMerchant installation can be found at activemerchant.rubyforge.org/.

As a Rails plugin

To install ActiveMerchantOgone in your rails app you can just do:

> ./script/plugin install git://github.com/DefV/active_merchant_ogone.git

As a gem

To install ActiveMerchantOgone in your rails app you can just do:

config.gem 'active_merchant_ogone'

Configuration

As Ogone works with in and out signatures, you will have to set these as constants in your configuration file.

OGONE_ACCOUNT = 'account_name'
Ogone.setup do |c|
  c.outbound_signature = '094598439859385938958398494' # You can find this under "Data and origin verification" tab
  c.inbound_signature  = '094598439859385938958398494' # You can find this under "Data and origin verification" tab
end

Make sure that Ogone is set to “Each parameter followed by the pass phrase.” as hashed value (under “Global security parameters”). If you don’t see this setting, then you’re probably already in that mode.

Example Usage

Once you’ve configured the Ogone settings you need to set up a leaving page with in your view:

<% payment_service_for @order.ogone_id, OGONE_ACCOUNT,
    :amount   => @order.price * 100 # needs to be in cents
    :currency   => 'EUR',
    :service  => :ogone do |service| %>
  <% service.redirect :accepturl => checkout_url(@order),
             :cancelurl => checkout_url(@order),
             :declineurl => checkout_url(@order),
             :exceptionurl => checkout_url(@order) %>

  <% service.language "nl_NL" %>
  <% service.template "https://secure.ogone.com/ncol/template_standard.htm" %>
  <%= submit_tag "Pay with Ogone!" %>
<% end %>

And in your controller you should have an enter path:

class CheckoutsController < ApplicationController
  include ActiveMerchant::Billing::Integrations

  def show
    @notification = Ogone::Notification.new(request.query_string)

    @order = Order.find_by_ogone_id(@notification.order_id)
    if @notification.complete?
      @order.paid!
    else
      @order.failed!
    end
  end
end

Example without setting the signatures in the config

If you need to use different signatures each time you can’t set them on the config. There’s a way to set them just when you need them by doing the following.

In your view:

<% payment_service_for @order.ogone_id, OGONE_ACCOUNT,
    :amount      => @order.price * 100 # needs to be in cents
    :currency    => 'EUR',
    :credential2 => current_seller.outbound_signature,
    :service     => :ogone do |service| %>

  <%  service.redirect :accepturl => checkout_url(@order),
             :cancelurl => checkout_url(@order),
             :declineurl => checkout_url(@order),
             :exceptionurl => checkout_url(@order) %>

  <%= submit_tag "Pay with Ogone!" %>
<% end %>

On your controller:

class CheckoutsController < ApplicationController
  include ActiveMerchant::Billing::Integrations

  def show
    @notification = Ogone::Notification.new request.query_string,
      :signature => current_seller.inbound_signature

    @order = Order.find_by_ogone_id(@notification.order_id)
    if @notification.complete?
      @order.paid!
    else
      @order.failed!
    end
  end
end

AfterPay(NL) Usage

To use AfterPay in your forms:

<% service.after_pay :bill_first_name => "Nick",
    :bill_last_name => "den Engelsman",
    :bill_street_number => "1098",
    :ship_first_name => "Nick",
    :ship_last_name => "den Engelsman",
    :ship_adress => "Laan van Meerdervoort",
    :ship_adress_number => "1098",
    :ship_adress_zip => "2564AZ",
    :ship_adress_city => "Den Haag",
    :ship_adress_country_code => "NL",
    :ship_dob => "23/04/1987" %>

Copyright © 2009 Openminds BVBVA, released under the MIT license

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.