README.md in atol-0.2 vs README.md in atol-0.3

- old
+ new

@@ -1,17 +1,17 @@ ![ruby-logo](https://www.ruby-lang.org/images/header-ruby-logo.png) -![atol-logo](http://www.atol.ru/site_styles/img/logo-red.png) +![atol-logo](http://www.atol.ru/site_styles/img/logo-red.png) [![Gem Version](https://badge.fury.io/rb/atol.svg)](https://badge.fury.io/rb/atol) [![BuildStatus](https://travis-ci.org/GeorgeGorbanev/atol-rb.png)](https://travis-ci.org/GeorgeGorbanev/atol-rb) [![Maintainability](https://api.codeclimate.com/v1/badges/8c702db502a7a6abdcba/maintainability)](https://codeclimate.com/github/GeorgeGorbanev/atol-rb/maintainability) [![Coverage Status](https://coveralls.io/repos/github/GeorgeGorbanev/atol-rb/badge.svg?branch=master)](https://coveralls.io/github/GeorgeGorbanev/atol-rb?branch=master) # atol-rb Пакет содержит набор классов для работы с [KaaS-сервисом АТОЛ-онлайн](https://online.atol.ru/) по [описанному протоколу](https://online.atol.ru/files/%D0%90%D0%A2%D0%9E%D0%9B%20%D0%9E%D0%BD%D0%BB%D0%B0%D0%B8%CC%86%D0%BD._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D0%B0.pdf). ##### Совместимость -Для корректной работы необходим интерпретатор Руби версии 2.2 и выше. Пакет работает с версией протокола v3. +Для корректной работы необходим интерпретатор Руби версии 2.2 и выше. Пакет работает с версией протокола v3. ## Использование ### Установка пакета @@ -21,11 +21,11 @@ ```ruby gem 'atol' ``` И запустить команду: -``` +``` $ bundle install ``` ### Конфигурация Для обращения к сервису необходимы данные учетной записи. @@ -46,11 +46,11 @@ Для Rails-приложений так же можно создать файл инициализации и задать параметры непосредственно в коде: ```ruby # config/initializers/atol.rb - + Rails.application.config.after_initialize do Atol.config.tap do |config| config.inn = '123456789010' config.login = 'example-login' config.password = 'example-password' @@ -58,12 +58,22 @@ config.group_code = 'example-group-code' end end ``` -Для класса конфигурации используется класс из гема [anyway-config](https://github.com/palkan/anyway_config). Другие способы задания конфигурации можно найти в его документации. +Для объектов конфигурации используется класс унаследованный от класса из гема [anyway-config](https://github.com/palkan/anyway_config). Другие способы задания конфигурации можно найти в его документации. +#### Прокси + +Объект конфигурации позволяет задать прокси для http-запросов: + +``` ruby + uri = URI('http://example-proxy.com') + proxy = Net::HTTP.Proxy(uri.host, uri.port) + Atol.config.http_client = proxy +``` + ### Получение токена Для создания документа в системе АТОЛ необходимо получить токен авторизации. Вот как это можно сделать: ```ruby @@ -79,20 +89,20 @@ #### Создание тела запроса Тело запроса должно соответствовать схеме. Для упрощения кода создан класс `Atol::Request::PostDocument::Sell::Body`. -Конструктор в качестве обязательных аргументов принимает `external_id`, один из аргументов `phone` или `email` и `items`. +Конструктор в качестве обязательных аргументов принимает `external_id`, один из аргументов `phone` или `email` и `items`. ```ruby body = Atol::Request::PostDocument::Sell::Body.new( external_id: 123, email: 'example@example.com', items: [ ... ] -).to_json +).to_json ``` Массив `items` должен включать в себя объекты, которые так же соответствуют схеме. Для создания `items` можно использовать класс `Atol::Request::PostDocument::Item::Body`. @@ -125,11 +135,11 @@ Atol::Request::PostDocument::Item::Body.new( name: 'number 6', price: 60 ).to_h ] -).to_json +).to_json ``` Результат: ```json @@ -222,11 +232,11 @@ # config/initializers/atol.rb Rails.application.config.after_initialize do Atol.config.callback_url = Rails.application.routes.url_helpers.atol_callback_url end - + ``` #### Запрос статуса документа Если в течение 300 секунд не поступил запрос с состоянием документа, то необходимо запросить его через get-запрос. @@ -235,6 +245,6 @@ ```ruby response = Atol::Transaction::GetDocumentState.new(token: token, uuid: uuid).call -``` \ No newline at end of file +```