# Oschadbank [![Gem Version](https://badge.fury.io/rb/oschadbank.svg)](https://badge.fury.io/rb/oschadbank) [![Build Status](https://travis-ci.org/busfor/oschadbank.svg?branch=master)](https://travis-ci.org/busfor/oschadbank) Ruby wrapper for Oschadbank.ua API ## Installation Add this line to your application's Gemfile: ```ruby gem 'oschadbank' ``` And then execute: $ bundle Or install it yourself as: $ gem install oschadbank ## Usage First, you need to initialize client: ```ruby client = Oschadbank::Client.new( mac_key: '00112233445566778899AABBCCDDEEFF', terminal_id: 123, merchant_id: 456, merchant_name: 'Shop name', merchant_url: 'www.my-shop.com', merchant_gmt: '+3', country_code: 'UA', email: 'mail@my-shop.com', ) ``` Then you can get request url and request params for payments: ```ruby url = client.api_url # => "https://3ds.oschadnybank.com/cgi-bin/cgi_link/" params = client.pre_auth_params( order_id: 123456, currency: 'UAH', amount: 100.5, description: 'Payment description', back_url: 'http://www.my-shop.com/back/url', ) # => {"TRTYPE"=>"0", # "TERMINAL"=>"123", # "MERCHANT"=>"456", # "MERCH_NAME"=>"Shop name", # "MERCH_URL"=>"www.my-shop.com", # "MERCH_GMT"=>"+3", # "COUNTRY"=>"UA", # "EMAIL"=>"example@my-shop.com", # "TIMESTAMP"=>"20160718093533", # "NONCE"=>"c82f595aef2ead17103c806b701e994c", # "ORDER"=>"123456", # "CURRENCY"=>"UAH", # "AMOUNT"=>"100.5", # "DESC"=>"Payment description", # "BACKREF"=>"http://www.my-shop.com/back/link", # "P_SIGN"=>"040a2920ec647e901756349491bb0167fa184747"} params = client.auth_params( order_id: 123456, currency: 'UAH', amount: 100.5, description: 'Payment description', back_url: 'http://www.my-shop.com/back/url', ) # => {"TRTYPE"=>"1", # "TERMINAL"=>"123", # "MERCHANT"=>"456", # "MERCH_NAME"=>"Shop name", # "MERCH_URL"=>"www.my-shop.com", # "MERCH_GMT"=>"+3", # "COUNTRY"=>"UA", # "EMAIL"=>"example@my-shop.com", # "TIMESTAMP"=>"20160718093707", # "NONCE"=>"4a6de0a53f759469042ce3fb08accb13", # "ORDER"=>"123456", # "CURRENCY"=>"UAH", # "AMOUNT"=>"100.5", # "DESC"=>"Payment description", # "BACKREF"=>"http://www.my-shop.com/back/link", # "P_SIGN"=>"73e7a49bf4b729f5c66c160117e05d6b1f3a1f3e"} ``` To complete payment after pre-authorization request: ```ruby client.charge( order_id: 123456, currency: 'UAH', amount: 100.5, rrn: 111, int_ref: 222, back_url: 'http://www.my-shop.com/back/url', ) ``` To perform a refund: ```ruby client.refund( order_id: 123456, currency: 'UAH', org_amount: 100.5, amount: 90, rrn: 111, int_ref: 222, back_url: 'http://www.my-shop.com/back/url', ) ``` Also you can check response from Oschadbank: ```ruby response = client.response( 'Function' => 'TransResponse', 'Result' => '0', 'RC' => '00', 'Amount' => '100.50', 'Currency' => 'UAH', 'Order' => '123456', 'RRN' => '111', 'IntRef' => '222', 'AuthCode' => '333', 'TRTYPE' => '1', ) response.request_type # => :auth response.pre_auth? # => false response.auth? # => true response.charge? # => false response.refund? # => false response.success? # => true response.status_code # => "00" response.status_message # => "Transaction successfully completed (Approved)" response.order_id # => "123456" response.currency # => "UAH" response.amount # => 100.5 response.rrn # => "111" response.int_ref # => "222" response.auth_code # => "333" ``` ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/busfor/oschadbank. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).