PaylerAPI
Simple ruby wrapper for Payler Merchant API
Install
echo 'gem "payler_api"' >> Gemfile
# or
gem install payler_api
PaylerAPI setup
$ cat config/initializers/payler_api.rb:
PaylerAPI.configure do |config|
config.host = 'HOST'
config.access_key = 'ACCESS_KEY'
end
PaylerAPI example usage:
response = PaylerAPI.pay amount: 10000,
order_id: 'order_uniq_id',
card_number: '5555555555555599',
expired_year: '19',
expired_month: '12',
secure_code: '123'
response # => return PaylerAPI::Response instanse
response.ok? # => return true if request is successed and payment charged
response.success? # => alias to :ok?
response.error? # => return true if have errors
response.error_code # => Payler error code
response. # => Payler error message
response.data # => all response data
Another examples
PaylerAPI.get_status order_id: 'some_uniq_order' # => return PaylerAPI::Response with order data
...
3DS
# step 0: authorize 3ds transaction
PaylerAPI.configuration.access_key = 3DS_key_ID
response = PaylerAPI.pay {
card_number: "*",
expired_year: "*",
expired_month: "*",
secure_code: "*",
order_id: "*",
amount: "10000"
}
response.ok? # => true
response.three_ds? # => true
attrs = response.three_ds_attributes # => {url: "acs_url", pa_req: "%big_key%", md: "%small_key%"}
# step 1: redirect customer to bank site with special params from three_ds_attributes
str = "<form name='form' action='#{attrs['url']}' method='post' >
<input type='hidden' name='TermUrl' value='%callback_url%' >
<input type='hidden' name='MD' value='#{attrs['md']}' >
<input type='hidden' name='PaReq' value='#{attrs['pa_req']}' >
</form><script type='text/javascript'>document.form.submit()</script>"
# step 2: callback request from bank(with md and pares keys), send finished request to payler
finished_response = PaylerAPI.send_3ds md: md_key, pares: pares_key
finished_response.ok? # => true if transaction is successed
dev
# run specs
ruby -Ilib test/spec_payler_api.rb