Giter Site home page Giter Site logo

yandex-kassa-api's Introduction

Code Climate

YandexKassa

Simple API wrapper for [YandexKassa] (https://kassa.yandex.ru). Official API documentaton here

Installation

Add this line to your application's Gemfile:

gem 'yandex_kassa'

And then execute:

$ bundle

Or install it yourself as:

$ gem install yandex_kassa

Usage

First of all configure gem.

require "yandex_kassa"

YandexKassa.configure do |config|
  # API end url given by Yandex
  config.url = "https://bo-demo02.yamoney.ru:9094/webservice/deposition/api"
  #path to you *.cer generated by Yandex on your request
  config.cert = "123123.cer"
  #path to your private key
  config.key = "private.key"
  #path to deposit *.cer generated by Yandex
  config.deposit = "deposit.cer"
  #passphare for *.key file, omit if you don't need
  config.passphrase = "passphrase"
end

Doc for Deposition requests

testDeposition:

#enable std loggin for Rest client
RestClient.log = 'stdout'

#create api instance
api = YandexKassa.create

#send test deposition request
test_deposition_params = {
  dst_account: "410011234567", amount: "10.00", currency: 10643,
  agent_id: "123123", contract: "Fun stuff", client_order_id: 1, request_dt: Time.now.iso8601
}

data = api.test_deposition(test_deposition_params)
# => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<testDepositionResponse clientOrderId=\"1\" status=\"3\" error=\"41\" processedDT=\"2016-03-23T12:52:53.087+03:00\" identification=\"anonymous\" />\r\n"

#or equally
data = api.test_deposition do |request|
    request.dst_account = 410011234567
    request.amount = 10.00
    request.currency = 10643
    request.contract = "Fun stuff"
    request.dst_account = 410011234567
    request.client_order_id = 1
    request.request_dt = Time.now.iso8601
  end
# => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<testDepositionResponse clientOrderId=\"1\" status=\"3\" error=\"41\" processedDT=\"2016-03-23T12:52:53.087+03:00\" identification=\"anonymous\" />\r\n"

makeDeposition:

#send make deposition request
payment_params = { "skr_destinationCardSynonim" => "b0af887ae9ad01fe01ca65df7cff19a7b5fcbf9b_scn",
                   "pdr_firstName" => "Владимир",
                   "pdr_middleName" => "Владимирович",
                   "pdr_docNumber" => "4002109067",
                   "pdr_postcode" => "194044",
                   "pdr_country" => "643",
                   "pdr_city" => "Москва",
                   "pdr_adress" => "ул. Какая-то",
                   "pdr_birthDate" => "24.05.1987",
                   "pdr_birthplace" => "Новосибирск",
                   "pdr_docIssueYear" => "1999",
                   "pdr_docIssueMonth" => "7",
                   "pdr_docIssueDay" => "30",
                   "pdr_docIssuedBy" => "ТП",
                   "pof_offerAccepted" => 1,
                   "smsPhoneNumber" => "79653457676"
                  }

make_deposition_params = {
  dst_account: "410011234567", amount: "10.00", currency: 10643,
  agent_id: "123123", contract: "Fun stuff", client_order_id: 1, request_dt: Time.now.iso8601,
  payment_params: payment_params
}

data = api.make_deposition(make_deposition_params)
# => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<makeDepositionResponse clientOrderId=\"1\" status=\"3\" error=\"41\" processedDT=\"2016-03-23T12:52:53.087+03:00\" identification=\"anonymous\" />\r\n"

#or equally
data = api.make_deposition do |request|
    request.dst_account = 410011234567
    request.amount = 10.00
    request.currency = 10643
    request.contract = "Fun stuff"
    request.dst_account = 410011234567
    request.client_order_id = 1
    request.request_dt = Time.now.iso8601
    set_payment_params payment_params
  end
# => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<makeDepositionResponse clientOrderId=\"1\" status=\"3\" error=\"41\" processedDT=\"2016-03-23T12:52:53.087+03:00\" identification=\"anonymous\" />\r\n"

Balance:

balance_params = { dst_account: "410011234567", agent_id: "123123",client_order_id: 1 }
api.balance(balance_params)
# => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<balanceResponse clientOrderId=\"1\" status=\"0\" processedDT=\"2016-03-24T14:15:43.484+03:00\" balance=\"-8320.00\" />\r\n"

Getting card_synonym:

url = "https://demo-scrat.yamoney.ru/gates/card/storeCard"
error_url = "https://example.com/error_url"
success_url = "https://example.com/success_url"
demo_card_number = "4444444444444448"

store_card = YandexKassa::StoreCard.new(
  url: url,
  error_url: error_url,
  success_url: success_url,
  response_format: "json",
  destination_card_number: demo_card_number
)

response = store_card.request
# => "{\"storeCard\":{\"reason\":\"success\",\"skr_destinationCardCountryCode\":\"616\",\"skr_destinationCardSynonim\":\"mob64asbX5okWsURXB8QoYwYSwwZ.SC.201603\",\"skr_destinationCardType\":\"Visa\",\"skr_destinationCardPanmask\":\"444444******4448\"}}"

##Integration Following gists may be useful:

Yandex Kassa Card payment test

Yandex Kassa different accounts test

License

The gem is available as open source under the terms of the MIT License.

yandex-kassa-api's People

Contributors

creepycheese avatar pechorin avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.