solidus_mp_dois 3.0.2 → 3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f944c94fa2dbc985c792ea59bfaf4ab33c3098e9d5748f7c0334471824a05be
4
- data.tar.gz: 45b1e92e97fcbb11914329e9656a182bfe1e38b38efb7675b3439c427b567c55
3
+ metadata.gz: 44927e2980c46be7c5cdc7d57931c6e9300d46370f903d265ac906b16c04c094
4
+ data.tar.gz: 28533f9624bdfc9225f2cc8131445886fa6bbf5865580d4db7f652b8c5ea8fb9
5
5
  SHA512:
6
- metadata.gz: 3a22b218df37bc0964da1a40658308ee191dc782f69d93d8e0810a46423ea8e2280e767ae6993b984c56d9a9be3a2986e5dc047fc056ce2d380184cfe0e2e84e
7
- data.tar.gz: 05f8ddff9d64c36398380d2b181bc93f91a219eed747d9efa52c6c845f6cf842dd871f3887bcb21466efc13baead9600d2ef10cc615ab641e0605c996d36828b
6
+ metadata.gz: 7294f4d3c0d25d3c1e82feebe64853a6c520a97c767b7bebd88128aef7be987b4c78594040c16e188d7707e41797776670e91e97fce3e65773804ff10ec0cff0
7
+ data.tar.gz: 9c3d71ee5ad8ab90e6bd9757402f2d8d96b7803614e6a3360601152cceb3f967baa524c35dd915632a900b9387a54700034182b9bfff4b1552312c7a0cde34b6
@@ -42,21 +42,27 @@ module SolidusMpDois
42
42
  payment
43
43
  end
44
44
 
45
- def purchase(payment)
46
- return unless payment.source&.external_id
45
+ def purchase(money, source, options = {})
46
+ mp_payment = source.retrieve_from_api
47
47
  10.times do
48
- mp_payment = find_payment(payment.source.external_id)
49
48
  break if ["approved", "rejected"].include? mp_payment.status
49
+ mp_payment = source.retrieve_from_api
50
+ end
51
+ sync(source.payments.sole, mp_payment)
52
+ if mp_payment.status == "approved"
53
+ source.update(status: "approved")
54
+ successful_response("Pagamento aprovado", status: source.status, internal_detail: source.internal_details)
55
+ else
56
+ failure_response(internal_error(source.internal_details), status: source.status, internal_detail: source.internal_details)
50
57
  end
51
- mp_payment = find_payment(payment.source.external_id)
52
- sync(payment, mp_payment)
53
58
  end
54
59
 
55
60
  def cancel!(payment)
56
61
  external_id = payment.source&.external_id
57
62
  return unless external_id
58
63
  sleep(1)
59
- purchase
64
+ mp_payment = find_payment(external_id)
65
+ sync(payment, mp_payment)
60
66
  return false unless ["checkout", "pending"].include? payment.state
61
67
 
62
68
  mp_payment = mp_client.update_payment(payment_id: external_id, status: "cancelled")
@@ -171,6 +177,7 @@ module SolidusMpDois
171
177
  last_four_digits: mp_payment.card.last_four_digits
172
178
  )
173
179
  payment.order.update(email: payment.source.email)
180
+ payment.update(response_code: mp_payment.id)
174
181
  sync(payment, mp_payment)
175
182
  end
176
183
 
@@ -182,7 +189,7 @@ module SolidusMpDois
182
189
  approve_payment(payment, paid_amount)
183
190
  elsif mp_payment.status == "approved"
184
191
  raise "Payment paid with value less than the created - #{mp_payment.id}"
185
- elsif (mp_payment.status == "pending" && mp_payment.status_detail == "pending_challenge")
192
+ elsif mp_payment.status == "pending" && mp_payment.status_detail == "pending_challenge"
186
193
  pend_payment(payment)
187
194
  else
188
195
  invalid_payment(payment)
@@ -212,8 +219,7 @@ module SolidusMpDois
212
219
  end
213
220
 
214
221
  def pend_payment payment
215
- payment.pend! unless payment.pending?
216
- payment.source.update!(status: payment.state)
222
+ payment.source.update!(status: "pending")
217
223
  error_message = "Pagamento aguardando 3ds"
218
224
  handle_payment_error(payment, error_message:)
219
225
  end
@@ -274,6 +280,5 @@ module SolidusMpDois
274
280
  full_message
275
281
  )
276
282
  end
277
-
278
283
  end
279
284
  end
@@ -49,25 +49,28 @@ module SolidusMpDois
49
49
  payment
50
50
  end
51
51
 
52
- def purchase(payment)
53
- return unless payment.source&.external_id
54
- 10.times do
55
- mp_payment = find_payment(payment.source.external_id)
56
- break if ["approved", "rejected"].include? mp_payment.status
52
+ def purchase(money, source, options = {})
53
+ mp_payment = source.retrieve_from_api
54
+ sync(source.payments.sole, mp_payment)
55
+ if mp_payment.status == "approved"
56
+ source.update(status: "approved")
57
+ successful_response("Pagamento aprovado", status: source.status, internal_detail: source.internal_details)
58
+ else
59
+ failure_response(internal_error(source.internal_details), status: source.status, internal_detail: source.internal_details)
57
60
  end
58
- mp_payment = find_payment(payment.source.external_id)
59
- sync(payment, mp_payment)
60
61
  end
61
62
 
62
- def paid? payment
63
- purchase(payment)
63
+ def pix_paid? payment
64
+ mp_payment = find_payment(payment.source.external_id)
65
+ sync(payment, mp_payment)
64
66
  payment.completed?
65
67
  end
66
68
 
67
69
  def invalidate_payment payment
68
70
  external_id = payment.source&.external_id
69
71
  return false if external_id.nil?
70
- purchase(payment)
72
+ mp_payment = find_payment(payment.source.external_id)
73
+ sync(payment, mp_payment)
71
74
  return false unless ["checkout", "pending"].include? payment.state
72
75
  mp_payment = mp_client.update_payment(payment_id: external_id, status: "cancelled")
73
76
  sync(payment, mp_payment)
@@ -108,6 +111,7 @@ module SolidusMpDois
108
111
  qr_code_base64: mp_payment.point_of_interaction.transaction_data.qr_code_base64,
109
112
  ticket_url: mp_payment.point_of_interaction.transaction_data.ticket_url
110
113
  )
114
+ payment.update(response_code: mp_payment.id)
111
115
  sync(payment, mp_payment)
112
116
  end
113
117
 
@@ -127,10 +131,10 @@ module SolidusMpDois
127
131
  end
128
132
 
129
133
  def approve_payment payment
130
- payment.complete!
134
+ payment.complete
131
135
  payment_source = payment.source
132
136
  payment_source.update!(status: payment.state)
133
- response = successful_response("Pagamento aprovado", status: payment_source.status, internal_details: payment_source.internal_details)
137
+ response = successful_response("Pagamento aprovado", status: payment_source.status, internal_detail: payment_source.internal_details)
134
138
  payment.log_entries.create(parsed_payment_response_details_with_fallback: response)
135
139
  end
136
140
 
@@ -149,7 +153,6 @@ module SolidusMpDois
149
153
  end
150
154
 
151
155
  def pend_payment payment
152
- payment.pend! unless payment.pending?
153
156
  payment.source.update!(status: payment.state)
154
157
  error_message = "Aguardando pagamento"
155
158
  handle_payment_error(payment, error_message:)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_mp_dois
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todas Essas Coisas