Project

ipizza

0.02
Low commit activity in last 3 years
There's a lot of open issues
A long-lived project that still receives updates
Simplifies generating payment requests and parsing responses from banks when using iPizza protocol.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
~> 2.9.0
 Project Readme

Implements iPizza protocol to communicate with Estonian Banks.

Gem implements support for iPizza services (1011, 1012, 4011 and 4012) that are supported by members of the Estonian Banking Association since October 2014.

If you need to use this gem with old iPizza services implementations (1001, 1002, 4001 and 4002), use 1.0.0 version of this gem (NB! support for these services will end on 31 December 2015).

Usage

Add gem dependency in your Gemfile and install the gem:

gem 'ipizza'

Ruby 1.8 support

Since ipizza gem version 1.0.0, Ruby 1.8 support has been dropped. If you need to use this gem with older versions of Ruby, use 0.7.1 version of this gem.

Configuration

Configuration can be made in two different ways, using Ipizza::Config.configure block or loading configuration properties from YAML file.

Loading from YAML file:

Ipizza::Config.load_from_file('config.yml')

Configuration values should be set in YAML file in provider.attribute_value format. See example YAML file below in "Configuration parameters" section.

At any time, configuration can be modified with Ipizza::Config.configure block:

Ipizza::Config.configure do |c|
  c.certs_root            = '/path/to/certificates'
  c.swedbank_service_url  = 'http://foo.bar/swedbank'
end

Configuration parameters

swedbank:
  service_url: http://foo.bar/swedbank
  return_url: http://mycompany.com/store
  cancel_url: http://mycompany.com/cancel
  
  # Your private key file path. Can be specified relatively
  # to YAML file
  file_key: ./certificates/my_private.key
  
  # If your private key is protected with password,
  # provide it here
  key_secret: private_key_password
  
  # Path to bank's public key file. Can be specified
  # relatively to YAML file
  file_cert: ./certificates/bank_public.crt
  snd_id: dealer
  encoding: UTF-8

Payment requests

Building request

payment = Ipizza::Payment.new(
  :stamp => 1, :amount => '123.34', :refnum => 1,
  :message => 'Payment message', :currency => 'EUR'
)
request = Ipizza::Provider::Swedbank.new.payment_request(@payment)

Authentication requests

Building request

request = Ipizza::Provider::Swedbank.new.authentication_request

Validating response

response = Ipizza::Provider::Swedbank.new.authentication_response({'VK_PARAM_1' => 'VALUE 1', ...})
response.valid?

Gateway specifications

This library currently works with four Estonian Banks. Here are their respective interface specifications:

Helpful links

Authors