solidus_mp 0.2.3 → 0.3.3

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: 74ec75fa7d047fc008dd680e7471a4f547ddb9ba8ffc9a1aae76ce0feee57bae
4
- data.tar.gz: 541d4d05bad0221c59a84c2ce02af4fa226d5c3c9783abe003873cf45494271d
3
+ metadata.gz: bc5769094a8fd0753cde88b796f0dac68f9980ae3ec9ac2a1e666f5862af4bc2
4
+ data.tar.gz: da8d80ce3d9d6526f091cf74ed88a71b2b4d553eee881d8a3c4f8963ea830342
5
5
  SHA512:
6
- metadata.gz: ab8837d46c3276df7089f3c898954e4dbaaedb9391c0e51223430dea4405a79d69505aa0e3acf761e54f5fcbe0dba3816be69f80bb28a7e59a23b757c1251d30
7
- data.tar.gz: f8a947de786eae4233c255e3a6369dd5ac18d854c8e47be61dc4ae71ab35aeb14739615d4b0b8db51b2ad11ca30046acf583fcfb70b75e06d21221ce955b26ef
6
+ metadata.gz: faf50651c94d20347741c1f827baa31e3b47705fb114fe4ead7e0783ea9772fc1672cf8f10e0c7a43f85471099a92b8f0203b25977eca81f643205bce64a9a45
7
+ data.tar.gz: 253ade89915d96aef0695f5f7a81069d91f6399f69e40492303bbbeb87dd225441dc06a733955aeb485223599181ec8d4300b7f8c184ff9e374a885a7f448d80
@@ -17,7 +17,25 @@ module SolidusMp
17
17
  source.is_a?(payment_source_class)
18
18
  end
19
19
 
20
- def create_api_payment payment
20
+ def create_card_payment payment
21
+ mp_payment = create_mp_payment(payment)
22
+ payment.source.update(external_id: mp_payment.id, three_ds_url: mp_payment.three_ds_info_external_resource_url, three_ds_creq: mp_payment.three_ds_info_creq)
23
+ if mp_payment.error || mp_payment.internal_error
24
+ payment.invalidate
25
+ error_message = mp_payment.error || mp_payment.internal_error
26
+ response = failure_response(error_message)
27
+ payment.log_entries.create!(parsed_payment_response_details_with_fallback: response)
28
+ payment.source.update(error_message: mp_payment.error, status: "error")
29
+ elsif mp_payment.status == "approved"
30
+ payment.complete
31
+ payment.source.update(status: "success")
32
+ elsif mp_payment.status == "pending"
33
+ payment.source.update(status: "pending")
34
+ end
35
+ payment.source
36
+ end
37
+
38
+ def create_mp_payment payment
21
39
  MpApi.configuration.access_token = preferences[:access_token]
22
40
  MpApi::Payment.new(amount: payment.amount.to_f, payment_method: payment.source.credit_card_brand, payer_email: payment.source.email, payer_identification_type: payment.source.payer_identification_type, payer_identification_number: payment.source.tax_id, token: payment.source.token, issuer_id: payment.source.issuer_id, installments: payment.source.installments, three_d_secure_mode: true, statement_descriptor: payment.source.statement_descriptor, description: payment.source.description, items: payment.source.items).create
23
41
  end
@@ -39,6 +57,7 @@ module SolidusMp
39
57
  mp_payment = MpApi::Payment.find_by_id(source.external_id)
40
58
  end
41
59
  if mp_payment.status == "approved"
60
+ source.update(status: "approved")
42
61
  successful_response("Transaction Accredited", mp_payment.id)
43
62
  else
44
63
  failure_response(mp_payment.status_detail || mp_payment.status)
@@ -19,17 +19,16 @@ module SolidusMp
19
19
 
20
20
  def create_pix_payment payment
21
21
  mp_payment = create_mp_payment(payment)
22
- if mp_payment.errors
22
+ if mp_payment.error || mp_payment.internal_error
23
23
  payment.invalidate
24
- error_message = mp_payment.errors&.first || mp_payment.status_detail
24
+ error_message = mp_payment.error || mp_payment.internal_error
25
25
  response = failure_response(error_message)
26
26
  payment.log_entries.create!(parsed_payment_response_details_with_fallback: response)
27
- payment.source.update(error_message: error_message, status: mp_payment.status)
28
- "error"
27
+ payment.source.update(error_message: mp_payment.error, status: "error")
29
28
  elsif mp_payment.status == "pending"
30
- payment.source.update(external_id: mp_payment.id, qr_code: mp_payment.qr_code, qr_code_base64: mp_payment.qr_code_base_64, ticket_url: mp_payment.ticket_url, status: mp_payment.status)
31
- "pending"
29
+ payment.source.update(external_id: mp_payment.id, qr_code: mp_payment.qr_code, qr_code_base64: mp_payment.qr_code_base_64, ticket_url: mp_payment.ticket_url, status: "pending")
32
30
  end
31
+ payment.source
33
32
  end
34
33
 
35
34
  def create_mp_payment payment
@@ -50,6 +49,7 @@ module SolidusMp
50
49
  MpApi.configuration.access_token = preferences[:access_token]
51
50
  mp_payment = MpApi::Payment.find_by_id(source.external_id)
52
51
  if mp_payment.status == "approved"
52
+ source.update(status: "approved")
53
53
  successful_response("Transaction Accredited", mp_payment.id)
54
54
  else
55
55
  failure_response(mp_payment.status_detail || mp_payment.status)
@@ -18,6 +18,10 @@ module SolidusMp
18
18
  payment.completed? && payment.credit_allowed > 0
19
19
  end
20
20
 
21
+ def usable?
22
+ status == "pending"
23
+ end
24
+
21
25
  end
22
26
 
23
27
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusMp
4
- VERSION = '0.2.3'
4
+ VERSION = '0.3.3'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_mp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - caio
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  requirements: []
160
- rubygems_version: 3.4.19
160
+ rubygems_version: 3.4.6
161
161
  signing_key:
162
162
  specification_version: 4
163
163
  summary: ''