/ipizza

Implements iPizza protocol to communicate with Estonian Banks

Primary LanguageRuby

Implements iPizza protocol to communicate with Estonian Banks.

Usage

Add gem dependency in your Gemfile and install the gem:

gem 'ipizza'

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: ISO-8859-4

Please note that currently only ISO-8859-4 encoding is supported with Swedbank. UTF-8 works well with other payment providers.

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