payanyway 2.0.2 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -3
- data/README.md +21 -14
- data/lib/payanyway/factories/payment_url_factory.rb +27 -22
- data/lib/payanyway/version.rb +1 -1
- data/spec/lib/payanyway/factories/payment_url_factory_spec.rb +17 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01cb3c2c06e6d8fd8308a70d57ad554f2bbc8372
|
4
|
+
data.tar.gz: ddc79fad090341cf5bb6ac5f32d58600cb35c6da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3414f4fedbd1341f29f1d9d9449799c1aecdf4307e1f50a1eacf93fb04e7e45b6a438fd25ab6309b9a1e6a9c23a6e9f736faf386bf31c1ca98ebc0bc983a2c48
|
7
|
+
data.tar.gz: efb6b8178bbfc14e4a9ba724faf2c1c0b748d11e0b09eb2e0e9e035239868890b5b62d555b924cd59caa68bcda01592904de0772bacc73fc1756d5169cd448ed
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
- [Check URL](#check_url)
|
18
18
|
- [Return URL и InProgress URL](#return_url)
|
19
19
|
- [Расшифровка параметров](#params)
|
20
|
-
- [
|
20
|
+
- [Автоматическое прохождение MONETA.Assistant](#auto_assistant)
|
21
21
|
|
22
22
|
##<a name="installation"></a> Установка
|
23
23
|
|
@@ -95,13 +95,18 @@ production: <<: *config
|
|
95
95
|
###<a name="payment_url"></a> Запрос на оплату
|
96
96
|
|
97
97
|
Чтобы получить ссылку на платежный шлюз для оплаты заказа пользователем,
|
98
|
-
используйте
|
99
|
-
`[:transaction_id, :amount, :test_mode, :description, :subscriber_id, :custom1, :custom2, :custom3, :locale, :payment_system_unit_id, :payment_system_limit_ids]`
|
98
|
+
используйте хелпер
|
100
99
|
|
101
|
-
|
100
|
+
```ruby
|
101
|
+
Payanyway::Gateway.payment_url(params, use_signature = true)
|
102
|
+
```
|
103
|
+
|
104
|
+
Описание всех возможных параметров запроса (ключей params) находится [здесь](#params).
|
105
|
+
|
106
|
+
Если в настройках счета в системе **moneta.ru** выставлен флаг «Можно переопределять настройки в URL», то можно так же передавать
|
102
107
|
`[:success_url, :in_progress_url, :fail_url, :return_url]`.
|
103
108
|
|
104
|
-
Пример минимальной
|
109
|
+
Пример минимальной ссылки для оплаты:
|
105
110
|
|
106
111
|
```ruby
|
107
112
|
class Order < ActiveRecord::Base; end
|
@@ -134,7 +139,7 @@ class PayanywayController
|
|
134
139
|
# params[ KEY ], где KEY ∈ [ :moneta_id, :transaction_id, :operation_id,
|
135
140
|
# :amount, :currency, :subscriber_id, :test_mode, :user, :corraccount,
|
136
141
|
# :custom1, :custom2, :custom3, :payment_system_unit_id ]
|
137
|
-
|
142
|
+
|
138
143
|
# ВНИМАНИЕ: при отправке корректного ответа со стороны магазина,
|
139
144
|
# необходимо вернуть в методе параметры для генерации статус-кода.
|
140
145
|
# { amount: AMOUNT, state: STATE, description: DESCRIPTION,
|
@@ -175,7 +180,7 @@ end
|
|
175
180
|
`:paid` | Заказ оплачен. Уведомление об оплате магазину доставлено.
|
176
181
|
`:in_progress` | Заказ находится в обработке. Точный статус оплаты заказа определить невозможно. (например, если пользователя отправило на InProgress URL, но уведомления на Pay URL от шлюза еще не поступало)
|
177
182
|
`:unpaid` | Заказ создан и готов к оплате. Уведомление об оплате магазину не доставлено.
|
178
|
-
`:canceled` | Заказ не является актуальным в магазине (например, заказ отменен).
|
183
|
+
`:canceled` | Заказ не является актуальным в магазине (например, заказ отменен).
|
179
184
|
|
180
185
|
####<a name="return_url"></a> Return URL и InProgress URL
|
181
186
|
|
@@ -202,7 +207,7 @@ class PayanywayController
|
|
202
207
|
end
|
203
208
|
```
|
204
209
|
|
205
|
-
###<a name="params"></a> Расшифровка
|
210
|
+
###<a name="params"></a> Расшифровка параметров
|
206
211
|
|
207
212
|
params[ KEY ], где KEY | В документации | Описание
|
208
213
|
---------------------------|:-------------------------|:-----------------------------------------
|
@@ -223,14 +228,16 @@ end
|
|
223
228
|
`:fail_url` | `MNT_FAIL_URL` | URL страницы магазина, куда должен попасть покупатель после отмененной или неуспешной оплаты.
|
224
229
|
`:return_url` | `MNT_RETURN_URL` | URL страницы магазина, куда должен вернуться покупатель при добровольном отказе от оплаты.
|
225
230
|
`:attributes` | `MNT_ATTRIBUTES` | Содержит произвольные параметры, которые будут сохранены в операции.
|
226
|
-
|
227
|
-
####<a name="payment_ids"></a> Параметры, отвечающие за выбор платежной системы:
|
228
|
-
|
229
|
-
params[ KEY ], где KEY | В документации | Описание
|
230
|
-
---------------------------|:-------------------------|:-----------------------------------------
|
231
|
-
`:payment_system_unit_id` | `paymentSystem.unitId` | Конкретная [платежная система](https://www.moneta.ru/viewPaymentMethods.htm)
|
232
231
|
`:payment_system_limit_ids`| `paymentSystem.limitIds` | Список (разделенный запятыми) идентификаторов платежных систем.
|
233
232
|
|
233
|
+
####<a name="auto_assistant"></a> Автоматическое прохождение MONETA.Assistant
|
234
|
+
|
235
|
+
params[ KEY ], где KEY | В документации | Описание
|
236
|
+
-----------------------------|:--------------------------|:-----------------------------------------
|
237
|
+
`:followup` | `followup` | Пройти весь MONETA.Assistant с предустановленными значениями. Для этого необходимо выбрать платежную систему и заполнить параметры платежной системы (если они есть).
|
238
|
+
`:payment_system_unit_id` | `paymentSystem.unitId` | (1015 – МОНЕТА.РУ, 1020 – Яндекс.Деньги, 1017 – WebMoney и т.п.) Предварительный выбор платежной системы. Полный список способов оплаты можно посмотреть: https://www.moneta.ru/viewPaymentMethods.htm
|
239
|
+
`:javascript_enabled` | `javascriptEnabled` | (true\|false) Признак возможности использовать javascript для автоматической обработки форм.
|
240
|
+
`:payment_system_account_id` | `paymentSystem.accountId` | Номер счета платежной системы. Например, тип кошелька WebMoney, 2 – WMR, 3 – WMZ, 4 – WME.
|
234
241
|
|
235
242
|
## Contributing
|
236
243
|
|
@@ -2,27 +2,32 @@ module Payanyway
|
|
2
2
|
module Factories
|
3
3
|
class PaymentUrlFactory
|
4
4
|
PARAMS = {
|
5
|
-
'MNT_ID'
|
6
|
-
'MNT_TEST_MODE'
|
7
|
-
'MNT_CURRENCY_CODE'
|
8
|
-
|
9
|
-
'MNT_TRANSACTION_ID'
|
10
|
-
'MNT_AMOUNT'
|
11
|
-
'MNT_DESCRIPTION'
|
12
|
-
'MNT_SUBSCRIBER_ID'
|
13
|
-
|
14
|
-
'MNT_SUCCESS_URL'
|
15
|
-
'MNT_INPROGRESS_URL'
|
16
|
-
'MNT_FAIL_URL'
|
17
|
-
'MNT_RETURN_URL'
|
18
|
-
|
19
|
-
'MNT_CUSTOM1'
|
20
|
-
'MNT_CUSTOM2'
|
21
|
-
'MNT_CUSTOM3'
|
22
|
-
|
23
|
-
'moneta.locale'
|
24
|
-
'paymentSystem.
|
25
|
-
|
5
|
+
'MNT_ID' => :moneta_id,
|
6
|
+
'MNT_TEST_MODE' => :test_mode,
|
7
|
+
'MNT_CURRENCY_CODE' => :currency,
|
8
|
+
|
9
|
+
'MNT_TRANSACTION_ID' => :transaction_id,
|
10
|
+
'MNT_AMOUNT' => :amount,
|
11
|
+
'MNT_DESCRIPTION' => :description,
|
12
|
+
'MNT_SUBSCRIBER_ID' => :subscriber_id,
|
13
|
+
|
14
|
+
'MNT_SUCCESS_URL' => :success_url,
|
15
|
+
'MNT_INPROGRESS_URL' => :in_progress_url,
|
16
|
+
'MNT_FAIL_URL' => :fail_url,
|
17
|
+
'MNT_RETURN_URL' => :return_url,
|
18
|
+
|
19
|
+
'MNT_CUSTOM1' => :custom1,
|
20
|
+
'MNT_CUSTOM2' => :custom2,
|
21
|
+
'MNT_CUSTOM3' => :custom3,
|
22
|
+
|
23
|
+
'moneta.locale' => :locale,
|
24
|
+
'paymentSystem.limitIds' => :payment_system_limit_ids,
|
25
|
+
|
26
|
+
# Дополнительные параметры запроса на оплату
|
27
|
+
'followup' => :followup,
|
28
|
+
'paymentSystem.unitId' => :payment_system_unit_id,
|
29
|
+
'javascriptEnabled' => :javascript_enabled,
|
30
|
+
'paymentSystem.accountId' => :payment_system_account_id
|
26
31
|
# 'MNT_SIGNATURE' => добавляется при use_signature == true
|
27
32
|
}.to_settings
|
28
33
|
|
@@ -51,4 +56,4 @@ module Payanyway
|
|
51
56
|
end
|
52
57
|
end
|
53
58
|
end
|
54
|
-
end
|
59
|
+
end
|
data/lib/payanyway/version.rb
CHANGED
@@ -31,13 +31,27 @@ describe Payanyway::Factories::PaymentUrlFactory do
|
|
31
31
|
amount: '120.25',
|
32
32
|
transaction_id: 'FF790ABCD',
|
33
33
|
locale: 'ru',
|
34
|
-
payment_system_unit_id: '1015',
|
35
34
|
payment_system_limit_ids: '1015,1017'
|
36
35
|
}
|
37
36
|
}
|
38
37
|
|
39
38
|
its(['moneta.locale']) { is_expected.to eq('ru') }
|
40
|
-
its(['paymentSystem.unitId']) { is_expected.to eq('1015') }
|
41
39
|
its(['paymentSystem.limitIds']) { is_expected.to eq('1015,1017') }
|
42
40
|
end
|
43
|
-
|
41
|
+
|
42
|
+
context 'when set additional params (for automatic MONETA.Assistant process)' do
|
43
|
+
let(:params) {
|
44
|
+
{
|
45
|
+
followup: true,
|
46
|
+
payment_system_unit_id: '1017',# (1015 – МОНЕТА.РУ, 1020 – Яндекс.Деньги, 1017 – WebMoney и т.п.)
|
47
|
+
javascript_enabled: true,
|
48
|
+
payment_system_account_id: 2 # 2 – WMR, 3 – WMZ, 4 – WME.
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
its(['followup']) { is_expected.to eq('true') }
|
53
|
+
its(['paymentSystem.unitId']) { is_expected.to eq('1017') }
|
54
|
+
its(['javascriptEnabled']) { is_expected.to eq('true') }
|
55
|
+
its(['paymentSystem.accountId']) { is_expected.to eq('2') }
|
56
|
+
end
|
57
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: payanyway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ssnikolay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|