portmone 0.0.11 → 0.0.16

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: 9fe495560f190d3a31fb237722ead6975acee2d8460705856a3a17d00f4b09c0
4
- data.tar.gz: 3f5bda3441a40f2f0ce357f2f6a1133955e07af80f7949abca07288f13884084
3
+ metadata.gz: 980c91387f0773f49b389434c6f23f1b6bc55d6ae06add5eca674a63f1f8c5dc
4
+ data.tar.gz: fc5894354208ecc4cd0c0f69958bcfbd61098b1c05efd0611d18c8e35889feb0
5
5
  SHA512:
6
- metadata.gz: 8a4146876d8bf77f951d9a8723c09cd6b8fa16d825b6e4c292df138734b6548b8db2956fdd88facd40e9c3502ecffafb88aa93113066222411194eea3c7e62cd
7
- data.tar.gz: 3ab543099ef5d69655a92ba9090b4aadfff063d83cca7d23f78d7f57e0fcfc20e51fcb36d3157b074b9e71cf92041d2a4137717fd16c541c2048e2b4d9edcf0d
6
+ metadata.gz: ccbbdf16e717828a105bdcbc40b1a46eeff82aaf00427b508e45f468e72d3f14839af92e4cfac3584f95d394d58a34471099b678fdc8d5892b14ba782c21adf0
7
+ data.tar.gz: b0834fa442c79c4fa22df054432e6cb18c99f1ab44636660c21daace7310f6dbae545ba75e52c717ea2ad1067a5e507298b96737d9b5401820250f10eeac94d4
data/Gemfile.lock CHANGED
@@ -1,37 +1,41 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- portmone (0.0.11)
4
+ portmone (0.0.15)
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
 
10
11
  GEM
11
12
  remote: https://rubygems.org/
12
13
  specs:
13
- activesupport (5.2.3)
14
+ activesupport (6.0.2.1)
14
15
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
16
  i18n (>= 0.7, < 2)
16
17
  minitest (~> 5.1)
17
18
  tzinfo (~> 1.1)
19
+ zeitwerk (~> 2.2)
18
20
  addressable (2.5.2)
19
21
  public_suffix (>= 2.0.2, < 4.0)
20
22
  ast (2.3.0)
21
23
  coderay (1.1.2)
22
- concurrent-ruby (1.1.5)
24
+ concurrent-ruby (1.1.6)
23
25
  crack (0.4.3)
24
26
  safe_yaml (~> 1.0.0)
25
27
  docile (1.1.5)
26
- faraday (0.15.4)
28
+ faraday (0.17.3)
27
29
  multipart-post (>= 1.2, < 3)
30
+ faraday-detailed_logger (2.3.0)
31
+ faraday (>= 0.8, < 2)
28
32
  hashdiff (0.3.7)
29
- i18n (1.6.0)
33
+ i18n (1.8.2)
30
34
  concurrent-ruby (~> 1.0)
31
35
  json (2.1.0)
32
36
  method_source (0.9.0)
33
37
  minitest (5.11.3)
34
- money (6.13.4)
38
+ money (6.13.7)
35
39
  i18n (>= 0.6.4, <= 2)
36
40
  multi_xml (0.6.0)
37
41
  multipart-post (2.1.1)
@@ -61,7 +65,7 @@ GEM
61
65
  simplecov-html (~> 0.10.0)
62
66
  simplecov-html (0.10.2)
63
67
  thread_safe (0.3.6)
64
- tzinfo (1.2.5)
68
+ tzinfo (1.2.6)
65
69
  thread_safe (~> 0.1)
66
70
  unicode-display_width (1.3.0)
67
71
  vcr (2.9.3)
@@ -69,6 +73,7 @@ GEM
69
73
  addressable (>= 2.3.6)
70
74
  crack (>= 0.3.2)
71
75
  hashdiff
76
+ zeitwerk (2.2.2)
72
77
 
73
78
  PLATFORMS
74
79
  ruby
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'
@@ -42,10 +42,11 @@ module Portmone
42
42
 
43
43
  def order_status(shop_order_number, created_date: nil)
44
44
  if created_date
45
- date = format_date(created_date)
45
+ start_date = created_date - 1.day
46
+ end_date = created_date + 1.day
46
47
  generic_report(shop_order_number: shop_order_number,
47
- start_date: date,
48
- end_date: date)
48
+ start_date: format_date(start_date),
49
+ end_date: format_date(end_date))
49
50
  else
50
51
  generic_report(shop_order_number: shop_order_number)
51
52
  end
@@ -83,6 +84,15 @@ module Portmone
83
84
  mobile_pay('APay', apple_pay_params, amount: amount, order_id: order_id, currency: currency)
84
85
  end
85
86
 
87
+ def finish_3ds(md:, pa_res:, shop_bill_id:)
88
+ params = {
89
+ method: 'confirmMpi',
90
+ params: { data: { 'MD': md.to_s, 'PaRes': pa_res.to_s, 'shopBillId': shop_bill_id.to_s } },
91
+ id: '1',
92
+ }
93
+ make_json_request(MOBILE_API_URL, params, Portmone::Responses::Finish3DS)
94
+ end
95
+
86
96
  private
87
97
 
88
98
  def mobile_pay(payment_method, payment_system_params, amount:, order_id:, currency:)
@@ -98,7 +108,7 @@ module Portmone
98
108
  .keep_if { |_, v| v.present? }
99
109
  params = { params: { data: data }, method: payment_method, id: 1 }
100
110
 
101
- make_json_request(MOBILE_API_URL, params, Portmone::Responses::MobilePayResponse)
111
+ make_json_request(MOBILE_API_URL, params, Portmone::Responses::MobilePay)
102
112
  end
103
113
 
104
114
  def base_params
@@ -162,7 +172,7 @@ module Portmone
162
172
 
163
173
  def make_json_request(url, params, response_class)
164
174
  conn = Faraday.new(url: url) do |builder|
165
- builder.response(:detailed_logger, @logger)
175
+ builder.response(:detailed_logger, @logger) if @logger
166
176
  builder.adapter Faraday.default_adapter
167
177
  end
168
178
 
@@ -0,0 +1,50 @@
1
+ class Portmone::Responses::Finish3DS
2
+ SUCCESS_STATUS = 'PAYED'.freeze
3
+
4
+ attr_reader :response
5
+
6
+ def initialize(faraday_response, currency:, timezone:)
7
+ @response = faraday_response
8
+ @currency = currency
9
+ @timezone = timezone
10
+ @response_body = @response.body.present? ? JSON.parse(@response.body) : { 'result' => {} }
11
+ end
12
+
13
+ def http_status
14
+ response.status
15
+ end
16
+
17
+ def success?
18
+ result['status'] == SUCCESS_STATUS && !required_3ds?
19
+ end
20
+
21
+ def error_code
22
+ result['errorCode']
23
+ end
24
+
25
+ def error_description
26
+ result['error']
27
+ end
28
+
29
+ def required_3ds?
30
+ result['isNeed3DS'] == 'Y'
31
+ end
32
+
33
+ def acs_url
34
+ result['actionMPI']
35
+ end
36
+
37
+ def md
38
+ result['md']
39
+ end
40
+
41
+ def pa_req
42
+ result['pareq']
43
+ end
44
+
45
+ private
46
+
47
+ def result
48
+ @result ||= @response_body['result']
49
+ end
50
+ end
@@ -0,0 +1,59 @@
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'] == 'Y'
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
+ def shop_bill_id
51
+ result['shopBillId']
52
+ end
53
+
54
+ private
55
+
56
+ def result
57
+ @result ||= @response_body['result']
58
+ end
59
+ end
@@ -1,3 +1,3 @@
1
1
  module Portmone
2
- VERSION = '0.0.11'
2
+ VERSION = '0.0.16'
3
3
  end
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.11
4
+ version: 0.0.16
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-09-05 00:00:00.000000000 Z
11
+ date: 2021-05-26 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