sberbank-acquiring 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ccbf57e377afcb8ff803721cd4babfa79b4d65a2
4
- data.tar.gz: 53e128c622fcb4b1d251c9f5a68dba55cb0e5a47
3
+ metadata.gz: 70cc909f0de20a79ccda9899ff380c6422c0587b
4
+ data.tar.gz: 830377d3af8af934be33c8233899a697292667b6
5
5
  SHA512:
6
- metadata.gz: d663c70963ef9ee8d7ac1876957b2e771da19b5b07c75a4ba3e59ed4b943b3e6c451298a179a684b6aa8a9ee6ce703a9523b80b5ce44991ca91ec9dc7f810afe
7
- data.tar.gz: b1e55b21521a2c4a5f29fa75718047132d16c365f0b49aa6d707ab1756852227fcb88ce4d111442d67797327aa5a04fbfab38290ea25dbdab81dadc1ea49d26e
6
+ metadata.gz: 2a5cc96b444348d7dbb929b964487762cd195812ecbb96ac3df31b9dcddaa9a84b8efb8d611a405baf8888d096bc0155d97928492c70b261206acb1e970db7fb
7
+ data.tar.gz: f13f87c3aab766f424616da98ad5011ada9a73f8d7fd4c4d063f7d9c01be8cbbeaba88ffb0e7f2bbfa57b2257e4950552577871d3ab5e2e69eb93bd343b806bc
data/README.md CHANGED
@@ -1,10 +1,19 @@
1
1
  # 💳 Sberbank::Acquiring
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/sberbank-acquiring.svg)](https://badge.fury.io/rb/sberbank-acquiring)
3
4
  [![Build Status](https://travis-ci.org/panasyuk/sberbank-acquiring.svg?branch=master)](https://travis-ci.org/panasyuk/sberbank-acquiring)
4
5
 
5
6
  🔻Ruby Version 2.1 - 2.6 (+ JRuby)
6
7
  🎈Никаких сторонних зависимостей
7
8
 
9
+ ## Основная функциональность
10
+ - Выполнение всех запросов к API эквайринга Сбербанка согласно документации (создание заказов, проверка их статуса и т.д)
11
+ - Выполнение любых запросов к API эквайринга Сбербанка
12
+ - Проверка контрольной суммы callback-уведомлений с симметричной и асимметричной криптографией
13
+
14
+ **В разработке:**
15
+ - Поддержка ФФД 1.05
16
+
8
17
  ## Описание
9
18
 
10
19
  GEM sberbank-acquiring предоставляет функциональность для взаимодействия с API эквайринга банка Сбербанк. Он использует RESTful API эквайринга Сбербанка.
@@ -17,7 +26,7 @@ GEM sberbank-acquiring предоставляет функциональност
17
26
  # Gemfile
18
27
  gem 'sberbank-acquiring', github: 'panasyuk/sberbank-acquiring'
19
28
  # или
20
- gem 'sberbank-acquiring', '~> 0.1.0'
29
+ gem 'sberbank-acquiring', '~> 0.2.1'
21
30
  ```
22
31
 
23
32
  ## Использование
@@ -161,36 +170,30 @@ response.terminal_id # => "123456"
161
170
  ### Проверка контрольной суммы callback-уведомлений
162
171
 
163
172
  API эквайринга Сбербанка поддерживает два вида callback-уведомлений: без контрольной суммы и с контрольной суммой.
164
- В случае обработки уведомления с контрольной суммой, алгоритм проверки включает в себя выполнение запроса 'getOrderStatusExtended' к API эквайринга для проверки действительного статуса платежа. В остальных случаях требуется проверка параметра `checksum` с использованием симметричного или асимметричного ключа.
173
+ В случае обработки уведомления с контрольной суммой, алгоритм проверки включает в себя выполнение запроса 'getOrderStatusExtended' к API эквайринга для проверки действительного статуса платежа. В остальных случаях требуется проверка параметра `checksum` с использованием [симметричной или асимметричной криптографии](https://securepayments.sberbank.ru/wiki/doku.php/integration:api:callback:start).
165
174
 
166
- #### Симметричный ключ
175
+ #### Симметричная криптография
167
176
 
168
177
  ```ruby
169
- # params = {}
178
+ # params = { 'checksum' => '...', ... }
170
179
  key = '20546026a3675994185a132875efe41a'
171
180
 
172
- callback_params = params.dup
173
- checksum = callback_params.delete('checksum')
174
-
175
181
  validator = Sberbank::Acquiring::SymmetricKeyChecksumValidator.new(key)
176
- if validator.validate(checksum, callback_params)
182
+ if validator.valid?(params)
177
183
  # запрос успешно прошел валидацию, контрольная сумма верна
178
184
  else
179
185
  # запрос не может быть обработан, так как контрольная сумма неверна
180
186
  end
181
187
  ```
182
188
 
183
- #### Асимметричный ключ
189
+ #### Асимметричная криптография
184
190
 
185
191
  ```ruby
186
- # params = {}
192
+ # params = { 'checksum' => '...', ... }
187
193
  pem = File.read('< путь до файла сертификата >')
188
194
 
189
- callback_params = params.dup
190
- checksum = callback_params.delete('checksum')
191
-
192
195
  validator = Sberbank::Acquiring::AsymmetricKeyChecksumValidator.new(pem)
193
- if validator.validate(checksum, callback_params)
196
+ if validator.valid?(params)
194
197
  # запрос успешно прошел валидацию, контрольная сумма верна
195
198
  else
196
199
  # запрос не может быть обработан, так как контрольная сумма неверна
@@ -199,7 +202,9 @@ end
199
202
 
200
203
  ## Разработка
201
204
 
202
- После клонирования репозитория, выполните `bin/setup` чтобы установить зависимости. Затем выполните `rake test`, чтобы запустить тесты. Так же можно запустить интерактивную консоль для экспериментов, выполнив `bin/console`.
205
+ - После клонирования репозитория, выполните `bin/setup` чтобы установить зависимости.
206
+ - Затем выполните `rake test`, чтобы запустить тесты.
207
+ - Так же можно запустить интерактивную консоль для экспериментов, выполнив `bin/console`.
203
208
 
204
209
  ## TODO
205
210
 
@@ -12,6 +12,11 @@ module Sberbank
12
12
  raise NotImplementedError
13
13
  end
14
14
 
15
+ def valid?(params)
16
+ params_to_validate = params.dup
17
+ validate(params_to_validate.delete('checksum'), params_to_validate)
18
+ end
19
+
15
20
  private
16
21
 
17
22
  def digest_class
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sberbank
4
4
  module Acquiring
5
- VERSION = '0.2.0'
5
+ VERSION = '0.2.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sberbank-acquiring
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksandr Panasyuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-27 00:00:00.000000000 Z
11
+ date: 2019-01-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This is an implementation of Sberbank Acuiring API client
14
14
  email:
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  version: '0'
59
59
  requirements: []
60
60
  rubyforge_project:
61
- rubygems_version: 2.6.12
61
+ rubygems_version: 2.4.3
62
62
  signing_key:
63
63
  specification_version: 4
64
64
  summary: GEM that makes integration of Sberbank Acquiring easier