Skip to content
Implements iPizza protocol to communicate with Estonian Banks
Ruby
Find file
Pull request Compare This branch is 8 commits ahead, 10 commits behind Voog:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
spec
.gitignore
.rspec
Gemfile
Guardfile
README.markdown
Rakefile
init.rb
ipizza.gemspec

README.markdown

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

Todo

  • Raise reasonable exception during configuration when certificates or keys cannot be loaded
  • Write ipizza-rails module:
    • Proper Rails initialization
    • Write Rails controller and model generator
    • Rails helper to generate iPizza request forms

Authors

Something went wrong with that request. Please try again.