portmone 0.0.12 → 0.0.13

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26414bad113ba645e7eb88e78140e0cfec72d0cf0360364de8184e4ef8f0805d
4
- data.tar.gz: fc32e7f9586acb8f4fecc1b0657a289daa8212c2c001ef6d85c27a96afc4ae88
3
+ metadata.gz: 5b43a7888113edbf7d84a9e831ac036bb6581b47124f77e59fb1f1fd45f4f97b
4
+ data.tar.gz: d4468725f2ca96b963a45c2816ec35edcf35d85d13d1e43681e8ed58c6de66db
5
5
  SHA512:
6
- metadata.gz: 5431f8509bad0285ffab4c43b563aee623d2e2497054cadd65d261a6240b493325ddb1850f496524ad6d251c3d3fd85e9f8a84ccdcf835dbab04705cccd0f2e0
7
- data.tar.gz: 335de3ab2131325bcaed1820405e2d2d5f143881144cc4a4d0adc4e262cab237da5af86800c6d37eea2cd85b75c8190a7f06498036e1f8961958739ab58ded33
6
+ metadata.gz: 2ec4c266c83d5c5cbc93633be53db62188d418f0cb0726bd355b62f4efa0246d426b63d8f04816c85641b0d161bd5336c722dcce8ba19c9017b319fb2ba69b56
7
+ data.tar.gz: 52b21d69b2b10a4e42f0b94b4a542f7953877e108d24f4c54ff1bbd689ddc0c3bba81d2b023fb23a57ebe144d46dd7fe5be77b2f28eac2eb1a7001b4b325dc9a
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- portmone (0.0.12)
4
+ portmone (0.0.13)
5
5
  activesupport
6
6
  faraday (~> 0.9)
7
+ faraday-detailed_logger
7
8
  money (~> 6.0)
8
9
  multi_xml (~> 0.5)
9
10
 
@@ -25,6 +26,8 @@ GEM
25
26
  docile (1.1.5)
26
27
  faraday (0.15.4)
27
28
  multipart-post (>= 1.2, < 3)
29
+ faraday-detailed_logger (2.1.3)
30
+ faraday (~> 0.8)
28
31
  hashdiff (0.3.7)
29
32
  i18n (1.6.0)
30
33
  concurrent-ruby (~> 1.0)
@@ -84,6 +84,14 @@ module Portmone
84
84
  mobile_pay('APay', apple_pay_params, amount: amount, order_id: order_id, currency: currency)
85
85
  end
86
86
 
87
+ def finish_3ds(md:, pa_res:, order_id:)
88
+ params = {
89
+ params: { data: { 'MD': md.to_s, 'PaRes': pa_res.to_s, 'shopBillId': order_id }, id: 1 },
90
+ method: 'confirmMpi',
91
+ }
92
+ make_json_request(MOBILE_API_URL, params, Portmone::Responses::Finish3DS)
93
+ end
94
+
87
95
  private
88
96
 
89
97
  def mobile_pay(payment_method, payment_system_params, amount:, order_id:, currency:)
@@ -99,7 +107,7 @@ module Portmone
99
107
  .keep_if { |_, v| v.present? }
100
108
  params = { params: { data: data }, method: payment_method, id: 1 }
101
109
 
102
- make_json_request(MOBILE_API_URL, params, Portmone::Responses::MobilePayResponse)
110
+ make_json_request(MOBILE_API_URL, params, Portmone::Responses::MobilePay)
103
111
  end
104
112
 
105
113
  def base_params
@@ -163,7 +171,7 @@ module Portmone
163
171
 
164
172
  def make_json_request(url, params, response_class)
165
173
  conn = Faraday.new(url: url) do |builder|
166
- builder.response(:detailed_logger, @logger)
174
+ builder.response(:detailed_logger, @logger) if @logger
167
175
  builder.adapter Faraday.default_adapter
168
176
  end
169
177
 
@@ -0,0 +1,17 @@
1
+ class Portmone::Responses::Finish3DS
2
+ attr_reader :response
3
+
4
+ def initialize(faraday_response, currency:, timezone:)
5
+ @response = faraday_response
6
+ @currency = currency
7
+ @timezone = timezone
8
+ end
9
+
10
+ def http_status
11
+ response.status
12
+ end
13
+
14
+ def success?
15
+ http_status == 204
16
+ end
17
+ end
@@ -0,0 +1,55 @@
1
+ class Portmone::Responses::MobilePay
2
+ SUCCESS_STATUS = 'PAYED'.freeze
3
+ CREATED_STATUS = 'CREATED'.freeze
4
+
5
+ attr_reader :response
6
+
7
+ def initialize(faraday_response, currency:, timezone:)
8
+ @response = faraday_response
9
+ @response_body = JSON.parse(@response.body)
10
+ @currency = currency
11
+ @timezone = timezone
12
+ end
13
+
14
+ def http_status
15
+ response.status
16
+ end
17
+
18
+ def success?
19
+ result['status'] == SUCCESS_STATUS
20
+ end
21
+
22
+ def created?
23
+ result['status'] == CREATED_STATUS
24
+ end
25
+
26
+ def error_code
27
+ result['errorCode']
28
+ end
29
+
30
+ def error_description
31
+ result['error']
32
+ end
33
+
34
+ def required_3ds?
35
+ created? && result['isNeed3DS']
36
+ end
37
+
38
+ def acs_url
39
+ result['actionMPI'] if required_3ds?
40
+ end
41
+
42
+ def md
43
+ result['md'] if required_3ds?
44
+ end
45
+
46
+ def pa_req
47
+ result['pareq'] if required_3ds?
48
+ end
49
+
50
+ private
51
+
52
+ def result
53
+ @result ||= @response_body['result']
54
+ end
55
+ end
@@ -1,3 +1,3 @@
1
1
  module Portmone
2
- VERSION = '0.0.12'
2
+ VERSION = '0.0.13'
3
3
  end
data/lib/portmone.rb CHANGED
@@ -13,5 +13,6 @@ require 'portmone/responses/base_response'
13
13
  require 'portmone/responses/generate_url'
14
14
  require 'portmone/responses/order_status'
15
15
  require 'portmone/responses/refund_order_status'
16
- require 'portmone/responses/mobile_pay_response'
16
+ require 'portmone/responses/mobile_pay'
17
+ require 'portmone/responses/finish_3ds'
17
18
  require 'portmone/client'
data/portmone.gemspec CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency 'faraday', '~> 0.9'
27
27
  spec.add_dependency 'money', '~> 6.0'
28
28
  spec.add_dependency 'multi_xml', '~> 0.5'
29
+ spec.add_dependency 'faraday-detailed_logger'
29
30
 
30
31
  spec.add_development_dependency 'bundler', '~> 1.14'
31
32
  spec.add_development_dependency 'minitest', '~> 5.0'
@@ -35,4 +36,5 @@ Gem::Specification.new do |spec|
35
36
  spec.add_development_dependency 'simplecov', '~> 0.14'
36
37
  spec.add_development_dependency 'vcr', '~> 2.9'
37
38
  spec.add_development_dependency 'webmock', '~> 3.0'
39
+
38
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: portmone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Sviridov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-03 00:00:00.000000000 Z
11
+ date: 2020-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.5'
69
+ - !ruby/object:Gem::Dependency
70
+ name: faraday-detailed_logger
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -191,8 +205,9 @@ files:
191
205
  - lib/portmone.rb
192
206
  - lib/portmone/client.rb
193
207
  - lib/portmone/responses/base_response.rb
208
+ - lib/portmone/responses/finish_3ds.rb
194
209
  - lib/portmone/responses/generate_url.rb
195
- - lib/portmone/responses/mobile_pay_response.rb
210
+ - lib/portmone/responses/mobile_pay.rb
196
211
  - lib/portmone/responses/order_status.rb
197
212
  - lib/portmone/responses/refund_order_status.rb
198
213
  - lib/portmone/transaction.rb
@@ -1,28 +0,0 @@
1
- class Portmone::Responses::MobilePayResponse
2
- SUCCESS_STATUS = 'PAYED'.freeze
3
-
4
- attr_reader :response
5
-
6
- def initialize(faraday_response, currency:, timezone:)
7
- @response = faraday_response
8
- @response_body = JSON.parse(@response.body)
9
- @currency = currency
10
- @timezone = timezone
11
- end
12
-
13
- def http_status
14
- response.status
15
- end
16
-
17
- def success?
18
- @response_body['result']['status'] == SUCCESS_STATUS
19
- end
20
-
21
- def error_code
22
- @response_body['result']['errorCode']
23
- end
24
-
25
- def error_description
26
- @response_body['result']['error']
27
- end
28
- end