ProcessingKz
Integrate Ruby projects with Processing.kz without pain. Current version supports only standard payments without refunding. Please watch project for new releases.
Installation
Add this line to your application's Gemfile:
gem 'processing_kz'
And then execute:
$ bundle
Or install it yourself as:
$ gem install processing_kz
If you are using Rails 3+, please initiate configuration file by running:
rails g processing_kz:config
We will generate configuration file for you in config/initializers
. You have to set all credentials received from Processing.kz provider.
ProcessingKz.config do |config|
config.wsdl = 'wsdl address'
config.host = 'processing_kz server address'
config.merchant_id = 'your merhant id'
config.language_code = 'ru' # ru, en or kz
config.currency_code = 398 # KZT code
end
If you are not using Rails, include this configuration in appropriate place, so processing_kz gem can obtain all neccesary information.
Usage
Full transaction process includes 3 steps. First you need to initiate transaction process and provide at least order_id, list of goods (see additional info below) and return url.
start = ProcessingKz.start(order_id: 1, goods_list: @goods, return_url: 'page for customer to continiue after payment')
Next step is to check that money is successfuly blocked on customer's card. Just pass customer_reference obtained from previous method.
transaction = ProcessingKz.get(customer_reference: start.customer_reference)
transaction.status #=> 'AUTHORISED'
Finaly you need to complete transaction to withdraw money from card. Again just pass customer_reference which you obtained during starting transaction.
ProcessingKz.complete(customer_reference: start.customer_reference, transaction_success: true)
Check that everything is alright. You have to get 'PAID'
status.
transaction = ProcessingKz.get(customer_reference: start.customer_reference)
transaction.status #=> 'PAID'
If you want to decline transaction, pass false
in transaction_success instead of true
.
List of Goods
ProcessingKz is requiring list of goods or services for transaction. You can pass one good or array of goods in transaction.
my_good = ProcessingKz.good(title: 'Title of good', amount 1200.99)
start = ProcessingKz.start(order_id: 1, goods_list: my_good, return_url: 'page for customer to continiue after payment')
Return URL
After finishing paying process in Processing.kz frame, user will be redirected to URL, which you defined in return_url. This will help you to continiue process on your site after successful payment.
Contributing
- Fork it ( https://github.com/paveltkachenko/processing_kz/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request