payneteasy-payneteasyapi 0.1.0 → 0.1.1

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.
data/README.md CHANGED
@@ -33,17 +33,17 @@
33
33
 
34
34
  ## Запуск тестов
35
35
 
36
- 1. Перейдите в папку с библиотекой: `cd vendor/payneteasy/php-library-payneteasy-api/`
37
- 2. Запустите тесты: `phpunit -c test/phpunit.xml test`
36
+ 1. Установите пакет `rubygems-test`, если его еще нет: `gem install rubygems-test`
37
+ 2. Запустите тесты: `gem test payneteasy-payneteasyapi`
38
38
 
39
39
  ## Использование
40
40
 
41
41
  * [Простой пример использования библиотеки](doc/00-basic-tutorial.md)
42
42
  * [Внутренняя структура библиотеки](doc/01-library-internals.md)
43
- * [Семейство классов для хранения и обмена данными, PaynetEasy\PaynetEasyApi\PaymentData](doc/library-internals/00-payment-data.md)
44
- * [Фронтенд библиотеки, PaynetEasy\PaynetEasyApi\PaymentProcessor](doc/library-internals/01-payment-processor.md)
45
- * [Валидатор данных, PaynetEasy\PaynetEasyApi\Util\Validator](doc/library-internals/02-validator.md)
46
- * [Класс для работы с цепочками свойств, PaynetEasy\PaynetEasyApi\Util\PropertyAccessor](doc/library-internals/03-property-accessor.md)
43
+ * [Семейство классов для хранения и обмена данными, PaynetEasy::PaynetEasyApi::PaymentData](doc/library-internals/00-payment-data.md)
44
+ * [Фронтенд библиотеки, PaynetEasy::PaynetEasyApi::PaymentProcessor](doc/library-internals/01-payment-processor.md)
45
+ * [Валидатор данных, PaynetEasy::PaynetEasyApi::Util::Validator](doc/library-internals/02-validator.md)
46
+ * [Класс для работы с цепочками свойств, PaynetEasy::PaynetEasyApi::Util::PropertyAccessor](doc/library-internals/03-property-accessor.md)
47
47
  * [Интеграция различных платежных сценариев](doc/02-payment-scenarios.md)
48
48
  * [Sale transactions](doc/payment-scenarios/00-sale-transactions.md)
49
49
  * [Preauth/Capture Transactions](doc/payment-scenarios/01-preauth-capture-transactions.md)
@@ -30,111 +30,100 @@
30
30
  3. Сохранение платежной транзакции
31
31
  4. Вывод статуса платежа **status** и статуса платежной транзакции **status** на экран
32
32
 
33
- Рассмотрим примеры исходного кода для выполнения обоих этапов. Код для выполнения второго этапа должен выполняться при переходе по ссылке, заданной в настройках по ключу **redirect_url**. Например, разместите исходный код первого этапа в файле `first_stage.php`, а второго - `second_stage.php`.
33
+ Рассмотрим примеры исходного кода для выполнения обоих этапов. Код для выполнения второго этапа должен выполняться при переходе по ссылке, заданной в настройках по ключу **redirect_url**. Например, разместите исходный код первого этапа в файле `first_stage.rb`, а второго - `second_stage.rb`.
34
34
 
35
35
  ### <a name="stage_1"></a>Начало обработки платежной транзакции
36
36
 
37
- 1. <a name="stage_1_step_1"></a>Подключение загрузчика классов, [предоставляемого composer](http://getcomposer.org/doc/01-basic-usage.md#autoloading), и необходимых классов:
37
+ 1. <a name="stage_1_step_1"></a>Подключение пакета библиотеки:
38
38
 
39
- ```php
40
- require_once 'project/root/dir/vendor/autoload.php';
39
+ ```ruby
40
+ require 'paynet_easy_api'
41
41
 
42
- use PaynetEasy\PaynetEasyApi\PaymentData\PaymentTransaction;
43
- use PaynetEasy\PaynetEasyApi\PaymentData\Payment;
44
- use PaynetEasy\PaynetEasyApi\PaymentData\QueryConfig;
45
- use PaynetEasy\PaynetEasyApi\PaymentData\BillingAddress;
46
- use PaynetEasy\PaynetEasyApi\PaymentData\Customer;
47
- use PaynetEasy\PaynetEasyApi\Transport\Response;
48
- use PaynetEasy\PaynetEasyApi\PaymentProcessor;
49
- use Exception;
42
+ include PaynetEasy::PaynetEasyApi
43
+ include PaynetEasy::PaynetEasyApi::PaymentData
50
44
  ```
51
45
  2. <a name="stage_1_step_2"></a>Создание новой платежной транзакции:
52
46
  ##### С использованием массивов, переданных в конструктор:
53
47
 
54
- ```php
55
- $customer = new Customer(array
56
- (
57
- 'email' => 'vass.pupkin@example.com',
58
- 'ip_address' => '127.0.0.1'
59
- ));
60
-
61
- $billingAddress = new BillingAddress(array
62
- (
63
- 'country' => 'US',
64
- 'city' => 'Houston',
65
- 'state' => 'TX',
66
- 'first_line' => '2704 Colonial Drive',
67
- 'zip_code' => '1235',
68
- 'phone' => '660-485-6353'
69
- ));
70
-
71
- $queryConfig = new QueryConfig(array
72
- (
73
- 'end_point' => 253,
74
- 'login' => 'rp-merchant1',
75
- 'signing_key' => '3FD4E71A-D84E-411D-A613-40A0FB9DED3A',
76
- 'redirect_url' => "http://{$_SERVER['HTTP_HOST']}/second_stage.php",
77
- 'gateway_mode' => QueryConfig::GATEWAY_MODE_SANDBOX,
78
- 'gateway_url_sandbox' => 'https://sandbox.domain.com/paynet/api/v2/',
79
- 'gateway_url_production' => 'https://payment.domain.com/paynet/api/v2/'
80
- ));
81
-
82
- $payment = new Payment(array
83
- (
84
- 'client_id' => 'CLIENT-112244',
85
- 'description' => 'This is test payment',
86
- 'amount' => 9.99,
87
- 'currency' => 'USD',
88
- 'customer' => $customer,
89
- 'billing_address' => $billingAddress
90
- ));
91
-
92
- $paymentTransaction = new PaymentTransaction(array
93
- (
94
- 'payment' => $payment,
95
- 'query_config' => $queryConfig
96
- ));
48
+ ```ruby
49
+ customer = Customer.new(
50
+ {
51
+ 'email' => 'vass.pupkin@example.com',
52
+ 'ip_address' => '127.0.0.1'
53
+ })
54
+
55
+ billing_address = BillingAddress.new(
56
+ {
57
+ 'country' => 'US',
58
+ 'city' => 'Houston',
59
+ 'state' => 'TX',
60
+ 'first_line' => '2704 Colonial Drive',
61
+ 'zip_code' => '1235',
62
+ 'phone' => '660-485-6353'
63
+ })
64
+
65
+ query_config = QueryConfig.new(
66
+ {
67
+ 'end_point' => 253,
68
+ 'login' => 'rp-merchant1',
69
+ 'signing_key' => '3FD4E71A-D84E-411D-A613-40A0FB9DED3A',
70
+ 'redirect_url' => "http://#{ENV['HTTP_HOST']}/second_stage.rb",
71
+ 'gateway_mode' => QueryConfig::GATEWAY_MODE_SANDBOX,
72
+ 'gateway_url_sandbox' => 'https://sandbox.domain.com/paynet/api/v2/',
73
+ 'gateway_url_production' => 'https://payment.domain.com/paynet/api/v2/'
74
+ })
75
+
76
+ payment = Payment.new(
77
+ {
78
+ 'client_id' => 'CLIENT-112244',
79
+ 'description' => 'This is test payment',
80
+ 'amount' => 9.99,
81
+ 'currency' => 'USD',
82
+ 'customer' => customer,
83
+ 'billing_address' => billing_address
84
+ })
85
+
86
+ payment_transaction = PaymentTransaction.new(
87
+ {
88
+ 'payment' => payment,
89
+ 'query_config' => query_config
90
+ })
97
91
  ```
98
92
  ##### С использованием сеттеров:
99
93
 
100
- ```php
101
- $customer = (new Customer)
102
- ->setEmail('vass.pupkin@example.com')
103
- ->setIpAddress('127.0.0.1')
104
- ;
105
-
106
- $billingAddress = (new BillingAddress)
107
- ->setCountry('US')
108
- ->setState('TX')
109
- ->setCity('Houston')
110
- ->setFirstLine('2704 Colonial Drive')
111
- ->setZipCode('1235')
112
- ->setPhone('660-485-6353')
113
- ;
114
-
115
- $queryConfig = (new QueryConfig)
116
- ->setEndPoint(253)
117
- ->setLogin('rp-merchant1')
118
- ->setSigningKey('3FD4E71A-D84E-411D-A613-40A0FB9DED3A')
119
- ->setRedirectUrl("http://{$_SERVER['HTTP_HOST']}/second_stage.php")
120
- ->setGatewayMode(QueryConfig::GATEWAY_MODE_SANDBOX)
121
- ->setGatewayUrlSandbox('https://sandbox.domain.com/paynet/api/v2/')
122
- ->setGatewayUrlProduction('https://payment.domain.com/paynet/api/v2/')
123
- ;
124
-
125
- $payment = (new Payment)
126
- ->setClientId('CLIENT-112244')
127
- ->setDescription('This is test payment')
128
- ->setAmount(9.99)
129
- ->setCurrency('USD')
130
- ->setCustomer($customer)
131
- ->setBillingAddress($billingAddress)
132
- ;
133
-
134
- $paymentTransaction = (new PaymentTransaction)
135
- ->setPayment($payment)
136
- ->setQueryConfig($queryConfig)
137
- ;
94
+ ```ruby
95
+ customer = Customer.new
96
+ customer.email = 'vass.pupkin@example.com'
97
+ customer.ip_address = '127.0.0.1'
98
+
99
+ billing_address = BillingAddress.new
100
+ billing_address.country = 'US'
101
+ billing_address.state = 'TX'
102
+ billing_address.city = 'Houston'
103
+ billing_address.first_line = '2704 Colonial Drive'
104
+ billing_address.zip_code = '1235'
105
+ billing_address.phone = '660-485-6353'
106
+
107
+ query_config = QueryConfig.new
108
+ query_config.end_point = 253
109
+ query_config.login = 'rp-merchant1'
110
+ query_config.signing_key = '3FD4E71A-D84E-411D-A613-40A0FB9DED3A'
111
+ query_config.redirect_url = "http://#{ENV['HTTP_HOST']}/second_stage.rb"
112
+ query_config.gateway_mode = QueryConfig::GATEWAY_MODE_SANDBOX
113
+ query_config.gateway_url_sandbox = 'https://sandbox.domain.com/paynet/api/v2/'
114
+ query_config.gateway_url_production = 'https://payment.domain.com/paynet/api/v2/'
115
+
116
+ payment = Payment.new
117
+ query_config.client_id = 'CLIENT-112244'
118
+ query_config.description = 'This is test payment'
119
+ query_config.amount = 9.99
120
+ query_config.currency = 'USD'
121
+ query_config.customer = customer
122
+ query_config.billing_address = billing_address
123
+
124
+ payment_transaction = PaymentTransaction.new
125
+ payment_transaction.payment = payment
126
+ payment_transaction.query_config = query_config
138
127
  ```
139
128
 
140
129
  Поля конфигурации запроса **QueryConfig**:
@@ -147,28 +136,29 @@
147
136
  * **gateway_url_production** - ссылка на шлюз PaynetEasy для режима работы production
148
137
 
149
138
  3. <a name="stage_1_step_4"></a>Создание сервиса для обработки платежей:
150
- ```php
151
- $paymentProcessor = new PaymentProcessor(array
152
- (
153
- PaymentProcessor::HANDLER_CATCH_EXCEPTION => function(Exception $exception)
154
- {
155
- print "<pre>";
156
- print "Exception catched.\n";
157
- print "Exception message: '{$exception->getMessage()}'.\n";
158
- print "Exception traceback: \n{$exception->getTraceAsString()}\n";
159
- print "</pre>";
160
- },
161
- PaymentProcessor::HANDLER_SAVE_CHANGES => function(PaymentTransaction $paymentTransaction)
162
- {
163
- start_session();
164
- $_SESSION['payment_transaction'] = serialize($paymentTransaction);
165
- },
166
- PaymentProcessor::HANDLER_REDIRECT => function(Response $response)
167
- {
168
- header("Location: {$response->getRedirectUrl()}");
169
- exit;
170
- }
171
- ));
139
+ ```ruby
140
+ payment_processor = PaymentProcessor.new(
141
+ {
142
+ PaymentProcessor::HANDLER_CATCH_EXCEPTION => ->(exception, payment_transaction, response = nil) do
143
+ puts $_CGI.header
144
+ puts <<HTML
145
+ <pre>
146
+ print "Exception catched.
147
+ print "Exception message: '#{exception.message}'
148
+ print "Exception backtrace:
149
+ #{exception.backtrace}
150
+ </pre>
151
+ HTML
152
+ end,
153
+ PaymentProcessor::HANDLER_SAVE_CHANGES => ->(payment_transaction, response) do
154
+ session = CGI::Session.new CGI.new('html5')
155
+ session['payment_transaction'] = Marshal.dump payment_transaction
156
+ end,
157
+ PaymentProcessor::HANDLER_REDIRECT => ->(response, payment_transaction) do
158
+ puts $_CGI.header('status' => 'REDIRECT', 'location' => response.redirect_url)
159
+ exit
160
+ end
161
+ })
172
162
  ```
173
163
 
174
164
  Обработчики событий для сервиса:
@@ -178,8 +168,8 @@
178
168
 
179
169
  4. <a name="stage_1_step_6"></a>Запуск обработки платежа:
180
170
 
181
- ```php
182
- $paymentProcessor->executeQuery('sale-form', $paymentTransaction);
171
+ ```ruby
172
+ payment_processor.execute_query 'sale-form', payment_transaction
183
173
  ```
184
174
  Будут выполнены следующие шаги:
185
175
  1. Проверка данных платежной транзакции и формирование на ее основе запроса к PaynetEasy
@@ -192,49 +182,52 @@
192
182
 
193
183
  ### <a name="stage_2"></a>Окончание обработки платежной транзакции
194
184
 
195
- 1. <a name="stage_2_step_1"></a>Подключение загрузчика классов, [предоставляемого composer](http://getcomposer.org/doc/01-basic-usage.md#autoloading), и необходимых классов:
185
+ 1. <a name="stage_2_step_1"></a>Подключение пакета библиотеки:
196
186
 
197
- ```php
198
- require_once 'project/root/dir/vendor/autoload.php';
187
+ ```ruby
188
+ require 'paynet_easy_api'
199
189
 
200
- use PaynetEasy\PaynetEasyApi\PaymentData\PaymentTransaction;
201
- use PaynetEasy\PaynetEasyApi\Transport\CallbackResponse;
202
- use PaynetEasy\PaynetEasyApi\PaymentProcessor;
203
- use Exception;
190
+ include PaynetEasy::PaynetEasyApi
191
+ include PaynetEasy::PaynetEasyApi::PaymentData
204
192
  ```
205
193
  2. <a name="stage_2_step_2"></a>Загрузка сохраненной платежной транзакции:
206
194
 
207
- ```php
208
- session_start();
209
- $paymentTransaction = unserialize($_SESSION['payment_transaction']);
195
+ ```ruby
196
+ session = CGI::Session.new CGI.new('html5')
197
+ payment_transaction = Marshal.load session['payment_transaction']
210
198
  ```
211
199
 
212
200
  3. <a name="stage_2_step_4"></a>Создание сервиса для обработки платежей:
213
201
 
214
- ```php
215
- $paymentProcessor = new PaymentProcessor(array
216
- (
217
- PaymentProcessor::HANDLER_CATCH_EXCEPTION => function(Exception $exception)
218
- {
219
- print "<pre>";
220
- print "Exception catched.\n";
221
- print "Exception message: '{$exception->getMessage()}'.\n";
222
- print "Exception traceback: \n{$exception->getTraceAsString()}\n";
223
- print "</pre>";
224
- },
225
- PaymentProcessor::HANDLER_SAVE_CHANGES => function(PaymentTransaction $paymentTransaction)
226
- {
227
- $_SESSION['payment_transaction'] = serialize($paymentTransaction);
228
- },
229
- PaymentProcessor::HANDLER_FINISH_PROCESSING => function(PaymentTransaction $paymentTransaction)
230
- {
231
- print "<pre>";
232
- print "Payment processing finished.\n";
233
- print "Payment status: '{$paymentTransaction->getPayment()->getStatus()}'.\n";
234
- print "Payment transaction status: '{$paymentTransaction->getStatus()}'.\n";
235
- print "</pre>";
236
- }
237
- ));
202
+ ```ruby
203
+ payment_processor = PaymentProcessor.new(
204
+ {
205
+ PaymentProcessor::HANDLER_CATCH_EXCEPTION => ->(exception, payment_transaction, response = nil) do
206
+ puts $_CGI.header
207
+ puts <<HTML
208
+ <pre>
209
+ print "Exception catched.
210
+ print "Exception message: '#{exception.message}'
211
+ print "Exception backtrace:
212
+ #{exception.backtrace}
213
+ </pre>
214
+ HTML
215
+ end,
216
+ PaymentProcessor::HANDLER_SAVE_CHANGES => ->(payment_transaction, response) do
217
+ session = CGI::Session.new CGI.new('html5')
218
+ session['payment_transaction'] = Marshal.dump payment_transaction
219
+ end,
220
+ PaymentProcessor::HANDLER_FINISH_PROCESSING => ->(payment_transaction, response = nil) do
221
+ puts $_CGI.header
222
+ puts <<HTML
223
+ <pre>
224
+ Payment processing finished.
225
+ Payment status: '#{payment_transaction.payment.status}'
226
+ Payment transaction status: '#{payment_transaction.status}'
227
+ </pre>
228
+ HTML
229
+ end
230
+ })
238
231
  ```
239
232
 
240
233
  Обработчики событий для сервиса:
@@ -244,11 +237,14 @@
244
237
 
245
238
  4. <a name="stage_2_step_6"></a>Запуск обработки данных, полученных при возвращении пользователя с платежной формы:
246
239
 
247
- ```php
248
- $paymentProcessor->processCustomerReturn(new CallbackResponse($_POST), $paymentTransaction);
240
+ ```ruby
241
+ # Change hash format from {'key' => ['value']} to {'key' => 'value'} in map block
242
+ post_fields = Hash[CGI.new('html5').params.map {|key, value| [key, value.first]}]
243
+
244
+ payment_processor.process_customer_return CallbackResponse.new(post_fields), payment_transaction
249
245
  ```
250
246
  Будут выполнены следующие шаги:
251
- 1. Проверка данных, полученные по возвращении клиента с платежной формы PaynetEasy (суперглобальный массив $_POST)
247
+ 1. Проверка данных, полученные по возвращении клиента с платежной формы PaynetEasy
252
248
  2. Изменение статуса платежной транзакции **status** на основе проверенных данных
253
249
  3. Сохранение платежной транзакции обработчиком для `PaymentProcessor::HANDLER_SAVE_PAYMENT`
254
250
  4. Вывод статуса платежа **status** и статуса платежной транзакции **status** на экран обработчиком для `PaymentProcessor::HANDLER_FINISH_PROCESSING`
@@ -1,6 +1,6 @@
1
1
  # Внутренняя структура библиотеки
2
2
 
3
- * [Семейство классов для хранения и обмена данными, PaynetEasy\PaynetEasyApi\PaymentData](library-internals/00-payment-data.md)
4
- * [Фронтенд библиотеки, PaynetEasy\PaynetEasyApi\PaymentProcessor](library-internals/01-payment-processor.md)
5
- * [Валидатор данных, PaynetEasy\PaynetEasyApi\Util\Validator](library-internals/02-validator.md)
6
- * [Класс для работы с цепочками свойств, PaynetEasy\PaynetEasyApi\Util\PropertyAccessor](library-internals/03-property-accessor.md)
3
+ * [Семейство классов для хранения и обмена данными, PaynetEasy::PaynetEasyApi::PaymentData](library-internals/00-payment-data.md)
4
+ * [Фронтенд библиотеки, PaynetEasy::PaynetEasyApi::PaymentProcessor](library-internals/01-payment-processor.md)
5
+ * [Валидатор данных, PaynetEasy::PaynetEasyApi::Util::Validator](library-internals/02-validator.md)
6
+ * [Класс для работы с цепочками свойств, PaynetEasy::PaynetEasyApi::Util::PropertyAccessor](library-internals/03-property-accessor.md)
@@ -1,6 +1,7 @@
1
1
  # Классы для хранения и передачи данных
2
2
 
3
- Семейство классов для хранения данных и обмена данными между библиотекой и CMS мерчанта. Расположены в пространстве имен **[PaynetEasy\PaynetEasyApi\PaymentData](../../source/PaynetEasy/PaynetEasyApi/PaymentData)**. Представлены следующими классами объектов:
3
+ Семейство классов для хранения данных и обмена данными между библиотекой и CMS мерчанта. Расположены в пространстве имен **[PaynetEasy::PaynetEasyApi::PaymentData](../../lib/paynet_easy/paynet_easy_api/payment_data)**. Представлены
4
+ следующими классами объектов:
4
5
  * [PaymentTransaction](#PaymentTransaction)
5
6
  * [Payment](#Payment)
6
7
  * [QueryConfig](#QueryConfig)
@@ -9,51 +10,52 @@
9
10
  * [CreditCard](#CreditCard)
10
11
  * [RecurrentCard](#RecurrentCard)
11
12
 
12
- Каждый из классов позволяет наполнять объект данными как с помощью массива, переданного в конструктор, так и с помощью сеттеров. При использовании массива в качестве ключа для данных необходимо использовать underscored название свойства класса.
13
+ Каждый из классов позволяет наполнять объект данными как с помощью хэша, переданного в конструктор, так и с помощью сеттеров. При использовании хэша в качестве ключа для данных необходимо использовать название свойства класса.
13
14
 
14
15
  ##### Использование массива и underscored названий свойств класса
15
16
 
16
- ```php
17
- $payment = new Payment(array
18
- (
19
- 'client_id' => 'CLIENT-112233',
20
- 'paynet_id' => 'PAYNET-112233',
21
- 'description' => 'test payment'
22
- ));
17
+ ```ruby
18
+ payment = Payment.new(
19
+ {
20
+ 'client_id' => 'CLIENT-112233',
21
+ 'paynet_id' => 'PAYNET-112233',
22
+ 'description' => 'test payment'
23
+ })
23
24
  ```
24
25
  ##### Использование сеттеров
25
26
 
26
- ```php
27
- $payment = (new Payment)
28
- ->setClientId('CLIENT-112233')
29
- ->setPaynetId('PAYNET-112233')
30
- ->setDescription('test payment')
31
- ;
27
+ ```ruby
28
+ payment = Payment.new
29
+
30
+ payment.client_id = 'CLIENT-112233'
31
+ payment.paynet_id = 'PAYNET-112233'
32
+ payment.description = 'test payment'
32
33
  ```
33
34
 
34
35
  ### <a name="PaymentTransaction"></a> PaymentTransaction
35
36
 
36
- Центральным объектом для хранения и передачи данных является объект класса **[PaynetEasy\PaynetEasyApi\PaymentData\PaymentTransaction](../../source/PaynetEasy/PaynetEasyApi/PaymentData/PaymentTransaction.php)**. Именно он передается из CMS в библиотеку при выполнении любого запроса. Хранит следующие данные:
37
+ Центральным объектом для хранения и передачи данных является объект класса **[PaynetEasy::PaynetEasyApi::PaymentData::PaymentTransaction](../../lib/paynet_easy/paynet_easy_api/payment_data/payment_transaction.rb)**. Именно он передается из CMS в библиотеку
38
+ при выполнении любого запроса. Хранит следующие данные:
37
39
 
38
40
  Свойство класса |Тип |Поле запроса |Назначение
39
41
  --------------------|---------------------------|---------------|-------------------------------------------------------
40
- processorType |string | |Transaction processor type (query, callback)
41
- processorName |string | |Transaction processor name (query or callback name)
42
+ processor_type |string | |Transaction processor type (query, callback)
43
+ processor_name |string | |Transaction processor name (query or callback name)
42
44
  status |string | |Transaction status (new, processing, approved, filtered, declined, error)
43
45
  payment |[Payment](#Payment) | |Платеж, для которого создана транзакция
44
- queryConfig |[QueryConfig](#QueryConfig)| |Payment query config
46
+ query_config |[QueryConfig](#QueryConfig)| |Payment query config
45
47
  errors |array | |Transaction processing errors
46
48
 
47
- Поля **processorType** и **processorName** заполняются обработчиком транзакции после формирования платежного запроса. Поле **status** изменяется на основе данных ответа от сервера PaynetEasy.
49
+ Поля **processor_type** и **processor_name** заполняются обработчиком транзакции после формирования платежного запроса. Поле **status** изменяется на основе данных ответа от сервера PaynetEasy.
48
50
 
49
51
  ### <a name="Payment"></a> Payment
50
52
 
51
- Объект класса **[PaynetEasy\PaynetEasyApi\PaymentData\Payment](../../source/PaynetEasy/PaynetEasyApi/PaymentData/Payment.php)**. Используется при выполнении всех запросов. Хранит следующие данные:
53
+ Объект класса **[PaynetEasy::PaynetEasyApi::PaymentData::Payment](../../lib/paynet_easy/paynet_easy_api/payment_data/payment.rb)**. Используется при выполнении всех запросов. Хранит следующие данные:
52
54
 
53
55
  Свойство класса |Тип |Поле запроса |Назначение
54
56
  --------------------|-----------------------------------|---------------|-------------------------------------------------------
55
- clientId |string |client_orderid |Merchant payment identifier
56
- paynetId |string |orderid |Unique identifier of transaction assigned by PaynetEasy
57
+ client_id |string |client_orderid |Merchant payment identifier
58
+ paynet_id |string |orderid |Unique identifier of transaction assigned by PaynetEasy
57
59
  description |string |order_desc |Brief payment description
58
60
  destination |string |destination |Destination to where the payment goes
59
61
  amount |float |amount |Amount to be charged
@@ -61,34 +63,34 @@ currency |string |currency |Three-l
61
63
  comment |string |comment |A short comment for payment
62
64
  status |string | |Payment status (new, preauth, capture, return)
63
65
  customer |[Customer](#Customer) | |Payment customer
64
- billingAddress |[BillingAddress](#BillingAddress) | |Payment billing address
65
- creditCard |[CreditCard](#CreditCard) | |Payment credit card
66
- recurrentCardFrom |[RecurrentCard](#RecurrentCard) | |Payment source recurrent card
67
- recurrentCardTo |[RecurrentCard](#RecurrentCard) | |Payment destination recurrent card
66
+ billing_address |[BillingAddress](#BillingAddress) | |Payment billing address
67
+ credit_card |[CreditCard](#CreditCard) | |Payment credit card
68
+ recurrent_card_from |[RecurrentCard](#RecurrentCard) | |Payment source recurrent card
69
+ recurrent_card_to |[RecurrentCard](#RecurrentCard) | |Payment destination recurrent card
68
70
 
69
71
  Поле **status** заполняется обработчиком транзакции после формирования платежного запроса в зависимости от того, какую платежную операцию реализует обработчик.
70
72
 
71
73
  ### <a name="QueryConfig"></a> QueryConfig
72
74
 
73
- Объект класса **[PaynetEasy\PaynetEasyApi\PaymentData\QueryConfig](../../source/PaynetEasy/PaynetEasyApi/PaymentData/QueryConfig.php)**. Используется при выполнении всех запросов. Хранит следующие данные:
75
+ Объект класса **[PaynetEasy::PaynetEasyApi::PaymentData::QueryConfig](../../lib/paynet_easy/paynet_easy_api/payment_data/query_config.rb)**. Используется при выполнении всех запросов. Хранит следующие данные:
74
76
 
75
- Свойство класса |Тип |Поле запроса |Назначение
76
- --------------------|-------|-------------------|-------------------------------------------------------
77
- login |string |login |Merchant login
78
- siteUrl |string |site_url |URL the original payment is made from
79
- redirectUrl |string |redirect_url |URL the customer will be redirected to upon completion of the transaction
80
- callbackUrl |string |server_callback_url|URL the transaction result will be sent to
81
- endPoint |integer| |Merchant end point
82
- signingKey |string | |Merchant key for payment signing
83
- gatewayMode |string | |Gateway mode (sandbox, production)
84
- gatewayUrlSandbox |string | |Sandbox gateway url
85
- gatewayUrlProduction|string | |Production gateway url
86
-
87
- Значение свойства endPoint участвует в формировании URL для вызова платежного метода шлюза PaynetEasy, а свойства signingKey - в формировании подписи для данных платежа. Значения свойств **gatewayUrlSandbox** и **gatewayUrlProduction** содержат ссылки на sandbox и production гейты. Выбор между этими url осуществляется на основе значения поля **gatewayMode**, если значение поля `QueryConfig::GATEWAY_MODE_SANDBOX`, то будет выбран url **gatewayUrlSandbox**, если `QueryConfig::GATEWAY_MODE_PRODUCTION` - то url **gatewayUrlProduction**.
77
+ Свойство класса |Тип |Поле запроса |Назначение
78
+ ----------------------|-------|-------------------|-------------------------------------------------------
79
+ login |string |login |Merchant login
80
+ site_url |string |site_url |URL the original payment is made from
81
+ redirect_url |string |redirect_url |URL the customer will be redirected to upon completion of the transaction
82
+ callback_url |string |server_callback_url|URL the transaction result will be sent to
83
+ end_point |integer| |Merchant end point
84
+ signing_key |string | |Merchant key for payment signing
85
+ gateway_mode |string | |Gateway mode (sandbox, production)
86
+ gateway_url_sandbox |string | |Sandbox gateway url
87
+ gateway_url_production|string | |Production gateway url
88
+
89
+ Значение свойства **end_point** участвует в формировании URL для вызова платежного метода шлюза PaynetEasy, а свойства **signing_key** - в формировании подписи для данных платежа. Значения свойств **gateway_url_sandbox** и **gateway_url_production** содержат ссылки на sandbox и production гейты. Выбор между этими url осуществляется на основе значения поля **gateway_mode**, если значение поля `QueryConfig::GATEWAY_MODE_SANDBOX`, то будет выбран url **gateway_url_sandbox**, если `QueryConfig::GATEWAY_MODE_PRODUCTION` - то url **gateway_url_production**.
88
90
 
89
91
  ### <a name="Customer"></a> Customer
90
92
 
91
- Объект класса **[PaynetEasy\PaynetEasyApi\PaymentData\Customer](../../source/PaynetEasy/PaynetEasyApi/PaymentData/Customer.php)**. Используется при выполнении следующих запросов:
93
+ Объект класса **[PaynetEasy::PaynetEasyApi::PaymentData::Customer](../../lib/paynet_easy/paynet_easy_api/payment_data/customer.rb)**. Используется при выполнении следующих запросов:
92
94
  * [sale](../payment-scenarios/00-sale-transactions.md#sale)
93
95
  * [preauth](../payment-scenarios/01-preauth-capture-transactions.md#preauth)
94
96
  * [sale-form, preauth-form, transfer-form](../payment-scenarios/05-payment-form-integration.md#form)
@@ -99,16 +101,16 @@ gatewayUrlProduction|string | |Production gateway url
99
101
 
100
102
  Свойство класса |Тип |Поле запроса |Назначение
101
103
  --------------------|-------|---------------|-------------------------------------------------------
102
- firstName |string |first_name |Customer’s first name
103
- lastName |string |last_name |Customer’s last name
104
+ first_name |string |first_name |Customer’s first name
105
+ last_name |string |last_name |Customer’s last name
104
106
  email |string |email |Customer’s email address
105
- ipAddress |string |ipaddress |Customer’s IP address
107
+ ip_address |string |ipaddress |Customer’s IP address
106
108
  birthday |string |birthday |Customer’s date of birth, in the format MMDDYY
107
109
  ssn |string |ssn |Last four digits of the customer’s social security number
108
110
 
109
111
  ### <a name="BillingAddress"></a> BillingAddress
110
112
 
111
- Объект класса **[PaynetEasy\PaynetEasyApi\PaymentData\BillingAddress](../../source/PaynetEasy/PaynetEasyApi/PaymentData/BillingAddress.php)**. Используется при выполнении следующих запросов:
113
+ Объект класса **[PaynetEasy::PaynetEasyApi::PaymentData::BillingAddress](../../lib/paynet_easy/paynet_easy_api/payment_data/billing_address.rb)**. Используется при выполнении следующих запросов:
112
114
  * [sale](../payment-scenarios/00-sale-transactions.md#sale)
113
115
  * [preauth](../payment-scenarios/01-preauth-capture-transactions.md#preauth)
114
116
  * [sale-form, preauth-form, transfer-form](../payment-scenarios/05-payment-form-integration.md#form)
@@ -120,14 +122,14 @@ ssn |string |ssn |Last four digits of the customer’
120
122
  country |string |country |Customer’s two-letter country code
121
123
  state |string |state |Customer’s two-letter state code
122
124
  city |string |city |Customer’s city
123
- firstLine |string |address1 |Customer’s address line 1
124
- zipCode |string |zip_code |Customer’s ZIP code
125
+ first_line |string |address1 |Customer’s address line 1
126
+ zip_code |string |zip_code |Customer’s ZIP code
125
127
  phone |string |phone |Customer’s full international phone number, including country code
126
- cellPhone |string |cell_phone |Customer’s full international cell phone number, including country code
128
+ cell_phone |string |cell_phone |Customer’s full international cell phone number, including country code
127
129
 
128
130
  ### <a name="CreditCard"></a> CreditCard
129
131
 
130
- Объект класса **[PaynetEasy\PaynetEasyApi\PaymentData\CreditCard](../../source/PaynetEasy/PaynetEasyApi/PaymentData/CreditCard.php)**. Используется при выполнении следующих запросов:
132
+ Объект класса **[PaynetEasy::PaynetEasyApi::PaymentData::CreditCard](../../lib/paynet_easy/paynet_easy_api/payment_data/credit_card.rb)**. Используется при выполнении следующих запросов:
131
133
  * [sale](../payment-scenarios/00-sale-transactions.md#sale)
132
134
  * [preauth](../payment-scenarios/01-preauth-capture-transactions.md#preauth)
133
135
 
@@ -136,14 +138,14 @@ cellPhone |string |cell_phone |Customer’s full international cel
136
138
  Свойство класса |Тип |Поле запроса |Назначение
137
139
  --------------------|-------|-------------------|-------------------------------------------------------
138
140
  cvv2 |integer|cvv2 |RecurrentCard CVV2
139
- cardPrintedName |string |card_printed_name |Card holder name
140
- creditCardNumber |string |credit_card_number |Credit card number
141
- expireYear |integer|expire_year |Card expiration year
142
- expireMonth |integer|expire_month |Card expiration month
141
+ card_printed_name |string |card_printed_name |Card holder name
142
+ credit_card_number |string |credit_card_number |Credit card number
143
+ expire_year |integer|expire_year |Card expiration year
144
+ expire_month |integer|expire_month |Card expiration month
143
145
 
144
146
  ### <a name="RecurrentCard"></a> RecurrentCard
145
147
 
146
- Объект класса **[PaynetEasy\PaynetEasyApi\PaymentData\RecurrentCard](../../source/PaynetEasy/PaynetEasyApi/PaymentData/RecurrentCard.php)**. Используется при выполнении следующих запросов:
148
+ Объект класса **[PaynetEasy::PaynetEasyApi::PaymentData::RecurrentCard](../../lib/paynet_easy/paynet_easy_api/payment_data/recurrent_card.rb)**. Используется при выполнении следующих запросов:
147
149
  * [create-card-ref](../payment-scenarios/04-recurrent-transactions.md#create-card-ref)
148
150
  * [get-card-info](../payment-scenarios/04-recurrent-transactions.md#get-card-info)
149
151
  * [make-rebill](../payment-scenarios/04-recurrent-transactions.md#make-rebill)
@@ -153,10 +155,10 @@ expireMonth |integer|expire_month |Card expiration month
153
155
 
154
156
  Свойство класса |Тип |Поле запроса |Назначение
155
157
  --------------------|-------|-------------------|-------------------------------------------------------
156
- paynetId |integer|cardrefid |RecurrentCard PaynetEasy ID
158
+ paynet_id |integer|cardrefid |RecurrentCard PaynetEasy ID
157
159
  cvv2 |integer|cvv2 |RecurrentCard CVV2
158
- cardPrintedName |string | |Card holder name
159
- expireYear |integer| |Card expiration year
160
- expireMonth |integer| |Card expiration month
160
+ card_printed_name |string | |Card holder name
161
+ expire_year |integer| |Card expiration year
162
+ expire_month |integer| |Card expiration month
161
163
  bin |integer| |Bank Identification Number
162
- lastFourDigits |integer| |The last four digits of PAN (card number)
164
+ last_four_digits |integer| |The last four digits of PAN (card number)