payture_ruby 0.0.2 → 0.0.3

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: fd1b82b410baf18065f6d9e17dfee702e778e3df
4
- data.tar.gz: 0ed81d64eb99593417c887739752562fa5e0456c
3
+ metadata.gz: d9d5fe52809080eb02835086de37d7a19940586a
4
+ data.tar.gz: 60a539edd939204a6f9ec3f8d0bd33b1cf693973
5
5
  SHA512:
6
- metadata.gz: 83638df88f5bdde60b5df0bc95618f8535def3e3bdee7b9065a3437fd57506a654da1bf543b7047b538ccc0ffc0177ad2f7e9d6f52cfa915bc834f1b5668bd01
7
- data.tar.gz: 1676d86713a7f3ff611e615fdc51c16c9f8457bb83c43c3778c9e64ddc69fcffb2e2930189ca9ee59df0e46eeca6411dcb852712ef3dccfd7d80486d94b7a7bb
6
+ metadata.gz: 765e2e1af294349e0dbbb55753db7eb32af75f740f5c414799a346c85eb1b09fd030a32fe4fcf843e4768e143d2bbf21ba6a43243155174cdfa3142eba92db6a
7
+ data.tar.gz: fd954f6bc85875a7af743ed22f887c37a46666e4f80961cec43cdcad4d8117027ec3a54f9133ad074d383f3ba9308aa485a6de7cd3ace8236670c914645ae5d4
@@ -15,6 +15,14 @@ module Payture
15
15
  end
16
16
  end
17
17
 
18
+ def charge options={}
19
+ options = hash_to_camelcase(options)
20
+ response = connection(false).get do |request|
21
+ request.url('Charge', options)
22
+ end
23
+ return Response.create(response.body).charge
24
+ end
25
+
18
26
  end
19
27
  end
20
28
  end
@@ -35,11 +35,19 @@ module Payture
35
35
  end
36
36
 
37
37
  def encoded_string hash
38
- s = hash.map{|k,v| "#{convert_to_camelcase(k)}=#{v}"}.join(';')
39
- CGI.escape s
38
+ h = convert_to_camelcase hash
39
+ CGI.escape h.join(';')
40
40
  end
41
41
 
42
- def convert_to_camelcase(key)
42
+ def convert_to_camelcase hash
43
+ hash.map{|k,v| "#{to_camelcase(k)}=#{v}"}
44
+ end
45
+
46
+ def hash_to_camelcase hash
47
+ Hash[hash.map {|k, v| [to_camelcase(k.capitalize), v] }]
48
+ end
49
+
50
+ def to_camelcase(key)
43
51
  key = key.to_s
44
52
  if key.split('_').count > 1
45
53
  key.split('_').collect(&:capitalize).join
@@ -1,3 +1,3 @@
1
1
  module Payture
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,36 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.payture.com/vwapi/Charge?Amount=1000&OrderId=new123&Password=123&VWID=VWMerchant
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/xml; charset=utf-8
12
+ User-Agent:
13
+ - Payture Ruby Gem 0.0.2
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Thu, 11 Sep 2014 00:34:50 GMT
25
+ Content-Type:
26
+ - text/xml; charset=utf-8
27
+ Content-Length:
28
+ - '76'
29
+ Connection:
30
+ - keep-alive
31
+ body:
32
+ encoding: UTF-8
33
+ string: <Charge Success="True" OrderId="new123" Amount="1000" />
34
+ http_version:
35
+ recorded_at: Thu, 11 Sep 2014 00:34:50 GMT
36
+ recorded_with: VCR 2.9.2
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://sandbox.payture.com/vwapi/Init?DATA=SessionType%253DBlock%253BVWUserLgn%253Dfucker1%2540dom.com%253BVWUserPsw%253D123%253Bip%253D123.123.122.111%253Bamount%253D1000%253BOrderId%253Dasdfasfafa1234&VWID=VWMerchant
5
+ uri: https://sandbox.payture.com/vwapi/Init?DATA=SessionType%253DBlock%253BVWUserLgn%253Dfucker1%2540dom.com%253BVWUserPsw%253D123%253Bip%253D123.123.122.111%253Bamount%253D1000%253BOrderId%253Dasdfasfafa1234345&VWID=VWMerchant
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -10,7 +10,7 @@ http_interactions:
10
10
  Accept:
11
11
  - application/xml; charset=utf-8
12
12
  User-Agent:
13
- - Payture Ruby Gem 0.0.1
13
+ - Payture Ruby Gem 0.0.2
14
14
  Accept-Encoding:
15
15
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
16
  response:
@@ -21,17 +21,17 @@ http_interactions:
21
21
  Server:
22
22
  - nginx
23
23
  Date:
24
- - Wed, 10 Sep 2014 22:43:29 GMT
24
+ - Wed, 10 Sep 2014 23:22:01 GMT
25
25
  Content-Type:
26
26
  - text/xml; charset=utf-8
27
27
  Content-Length:
28
- - '134'
28
+ - '137'
29
29
  Connection:
30
30
  - keep-alive
31
31
  body:
32
32
  encoding: UTF-8
33
- string: <Init Success="True" OrderId="asdfasfafa1234" Amount="1000" SessionId="9769cd7a-b7f5-4c6a-9672-6dc87ec42960"
33
+ string: <Init Success="True" OrderId="asdfasfafa1234345" Amount="1000" SessionId="b324fe03-f70b-4a3d-8265-526c8e718c49"
34
34
  SessionType="Block" />
35
- http_version:
36
- recorded_at: Wed, 10 Sep 2014 22:43:29 GMT
35
+ http_version:
36
+ recorded_at: Wed, 10 Sep 2014 23:22:01 GMT
37
37
  recorded_with: VCR 2.9.2
@@ -0,0 +1,37 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.payture.com/vwapi/Init?DATA=SessionType%253DBlock%253BVWUserLgn%253Dnew%2540dom.com%253BVWUserPsw%253D123%253Bip%253D123.123.122.111%253Bamount%253D1000%253BOrderId%253Dnew123&VWID=VWMerchant
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/xml; charset=utf-8
12
+ User-Agent:
13
+ - Payture Ruby Gem 0.0.2
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Thu, 11 Sep 2014 00:26:08 GMT
25
+ Content-Type:
26
+ - text/xml; charset=utf-8
27
+ Content-Length:
28
+ - '130'
29
+ Connection:
30
+ - keep-alive
31
+ body:
32
+ encoding: UTF-8
33
+ string: <Init Success="True" OrderId="new123" Amount="1000" SessionId="ede6348e-ff39-41a0-8a9b-bf28d106de13"
34
+ SessionType="Block" />
35
+ http_version:
36
+ recorded_at: Thu, 11 Sep 2014 00:26:08 GMT
37
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,36 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.payture.com/vwapi/Pay?DATA=VWUserLgn%253Dnew%2540dom.com%253BVWUserPsw%253D123%253BCardId%253DFreePay%253BCardNumber%253D4111111111111112%253BEMonth%253D12%253BEYear%253D15%253BCardHolder%253DIvan%2BIvanov%253BSecureCode%253D123%253BPhoneNumber%253D79001234567%253BOrderId%253Dnew123%253Bamount%253D1000%253Bip%253D123.123.122.111&VWID=VWMerchant
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/xml; charset=utf-8
12
+ User-Agent:
13
+ - Payture Ruby Gem 0.0.2
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Thu, 11 Sep 2014 00:30:21 GMT
25
+ Content-Type:
26
+ - text/xml; charset=utf-8
27
+ Content-Length:
28
+ - '86'
29
+ Connection:
30
+ - keep-alive
31
+ body:
32
+ encoding: UTF-8
33
+ string: <Pay VWUserLgn="" OrderId="new123" Success="True" Amount="1000" />
34
+ http_version:
35
+ recorded_at: Thu, 11 Sep 2014 00:30:21 GMT
36
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,37 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.payture.com/vwapi/PayStatus?DATA=OrderId%253Dnew123&VWID=VWMerchant
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/xml; charset=utf-8
12
+ User-Agent:
13
+ - Payture Ruby Gem 0.0.2
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Thu, 11 Sep 2014 00:31:49 GMT
25
+ Content-Type:
26
+ - text/xml; charset=utf-8
27
+ Content-Length:
28
+ - '116'
29
+ Connection:
30
+ - keep-alive
31
+ body:
32
+ encoding: UTF-8
33
+ string: <PayStatus Success="True" VWUserLgn="" OrderId="new123" Amount="1000"
34
+ CardId="" Status="Authorized" />
35
+ http_version:
36
+ recorded_at: Thu, 11 Sep 2014 00:31:49 GMT
37
+ recorded_with: VCR 2.9.2
@@ -258,8 +258,7 @@ module Payture
258
258
  end
259
259
 
260
260
  describe '.init' do
261
- let(:email) { 'fucker1@dom.com' }
262
- let(:card_id) { "e43544ba-cf4f-4702-85ef-313df89577eb" }
261
+ let(:email) { 'new@dom.com' }
263
262
  let(:options) {
264
263
  {
265
264
  session_type: 'Block',
@@ -267,13 +266,81 @@ module Payture
267
266
  v_w_user_psw: 123,
268
267
  ip: '123.123.122.111',
269
268
  amount: 1000,
270
- order_id: 'asdfasfafa1234'
269
+ order_id: 'new123'
271
270
  }
272
271
  }
273
272
  subject { client.init options }
274
273
 
275
274
  it "returns success status" do
276
- VCR.use_cassette('init/existing_user') do
275
+ VCR.use_cassette('init/new_user') do
276
+ subject.success.must_equal "True"
277
+ end
278
+ end
279
+ end
280
+
281
+ describe '.pay to block after init' do
282
+ let(:email) { 'new@dom.com' }
283
+ let(:card_number) { 4111111111111112 }
284
+ let(:order_id) { 'new123' }
285
+ let(:options) {
286
+ {
287
+ v_w_user_lgn: email,
288
+ v_w_user_psw: 123,
289
+ card_id: 'FreePay',
290
+ card_number: card_number,
291
+ e_month: 12,
292
+ e_year: 15,
293
+ card_holder: 'Ivan Ivanov',
294
+ secure_code: 123,
295
+ phone_number: 79001234567,
296
+ order_id: order_id,
297
+ amount: '1000',
298
+ ip: '123.123.122.111'
299
+ }
300
+ }
301
+ subject { client.pay options }
302
+
303
+
304
+ it "returns success status" do
305
+ VCR.use_cassette('pay/new_user/block') do
306
+ subject.success.must_equal "True"
307
+ end
308
+ end
309
+
310
+ end
311
+
312
+ describe '.pay_status' do
313
+ let(:options) {
314
+ {
315
+ order_id: 'new123',
316
+ }
317
+ }
318
+ subject { client.pay_status options }
319
+
320
+ it "returns success status" do
321
+ VCR.use_cassette('pay_status/blocked') do
322
+ subject.success.must_equal "True"
323
+ end
324
+ end
325
+ it "returns payment status" do
326
+ VCR.use_cassette('pay_status/blocked') do
327
+ subject.status.must_equal "Authorized"
328
+ end
329
+ end
330
+ end
331
+
332
+ describe '.charge' do
333
+ let(:options) {
334
+ {
335
+ amount: 1000,
336
+ order_id: 'new123',
337
+ password: 123
338
+ }
339
+ }
340
+ subject { client.charge options }
341
+
342
+ it "returns success status" do
343
+ VCR.use_cassette('charge/blocked') do
277
344
  subject.success.must_equal "True"
278
345
  end
279
346
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: payture_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Davydov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-10 00:00:00.000000000 Z
11
+ date: 2014-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -181,10 +181,14 @@ files:
181
181
  - test/cassettes/activate/existing_user/existing_card.yml
182
182
  - test/cassettes/add/new_user/existing_card.yml
183
183
  - test/cassettes/add/new_user/new_card.yml
184
+ - test/cassettes/charge/blocked.yml
184
185
  - test/cassettes/get_list/existing_user.yml
185
186
  - test/cassettes/init/existing_user.yml
187
+ - test/cassettes/init/new_user.yml
186
188
  - test/cassettes/pay/existing_user/active_card.yml
187
189
  - test/cassettes/pay/existing_user/inactive_card.yml
190
+ - test/cassettes/pay/new_user/block.yml
191
+ - test/cassettes/pay_status/blocked.yml
188
192
  - test/cassettes/register/duplicate.yml
189
193
  - test/cassettes/register/new.yml
190
194
  - test/payture/api_test.rb
@@ -220,10 +224,14 @@ test_files:
220
224
  - test/cassettes/activate/existing_user/existing_card.yml
221
225
  - test/cassettes/add/new_user/existing_card.yml
222
226
  - test/cassettes/add/new_user/new_card.yml
227
+ - test/cassettes/charge/blocked.yml
223
228
  - test/cassettes/get_list/existing_user.yml
224
229
  - test/cassettes/init/existing_user.yml
230
+ - test/cassettes/init/new_user.yml
225
231
  - test/cassettes/pay/existing_user/active_card.yml
226
232
  - test/cassettes/pay/existing_user/inactive_card.yml
233
+ - test/cassettes/pay/new_user/block.yml
234
+ - test/cassettes/pay_status/blocked.yml
227
235
  - test/cassettes/register/duplicate.yml
228
236
  - test/cassettes/register/new.yml
229
237
  - test/payture/api_test.rb