payanyway 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|