Implements iPizza protocol to communicate with Estonian Banks.
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: 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
- Thanks to all contributors!
- Tarmo Talu (Thanks for the 7-3-1 algorithm)