solidus_mp 0.2.2 → 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: 346ae15cf9f026b663c1e80a0d80be4794f33b9fbaa159ce5a5e2446ee9027ee
4
- data.tar.gz: '08291d0c68af6ed01d8b0b56e7a23f0de37711b7ffae4a998d259edec9c62498'
3
+ metadata.gz: bc5769094a8fd0753cde88b796f0dac68f9980ae3ec9ac2a1e666f5862af4bc2
4
+ data.tar.gz: da8d80ce3d9d6526f091cf74ed88a71b2b4d553eee881d8a3c4f8963ea830342
5
5
  SHA512:
6
- metadata.gz: 6ff886729a10a670f7909c01f89e8d79689c2fa6389c88d2921567d1fc745ab572c14109905a7bb268f235f7f07a0bb4f4fd087af05a59fcf815e2fb3b8ec1dd
7
- data.tar.gz: 33771b61b3273ff0502c86fcf3e6f6d08c713242f4cc705aa463d9624f66300e7e5d6580f23726ab4d806d2d4426391080ba1c84537195b48f3cbcaf7fac768d
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)
@@ -17,7 +17,21 @@ module SolidusMp
17
17
  source.is_a?(payment_source_class)
18
18
  end
19
19
 
20
- def create_api_payment payment
20
+ def create_pix_payment payment
21
+ mp_payment = create_mp_payment(payment)
22
+ if mp_payment.error || mp_payment.internal_error
23
+ payment.invalidate
24
+ error_message = mp_payment.error || mp_payment.internal_error
25
+ response = failure_response(error_message)
26
+ payment.log_entries.create!(parsed_payment_response_details_with_fallback: response)
27
+ payment.source.update(error_message: mp_payment.error, status: "error")
28
+ elsif mp_payment.status == "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")
30
+ end
31
+ payment.source
32
+ end
33
+
34
+ def create_mp_payment payment
21
35
  MpApi.configuration.access_token = preferences[:access_token]
22
36
  MpApi::Payment.new(payer_email: payment.source.email, payer_identification_type: "CPF", payment_method: "pix", payer_identification_number: payment.source.tax_id, amount: payment.amount.to_f, statement_descriptor: payment.source.statement_descriptor, description: payment.source.description, items: payment.source.items).create
23
37
  end
@@ -35,6 +49,7 @@ module SolidusMp
35
49
  MpApi.configuration.access_token = preferences[:access_token]
36
50
  mp_payment = MpApi::Payment.find_by_id(source.external_id)
37
51
  if mp_payment.status == "approved"
52
+ source.update(status: "approved")
38
53
  successful_response("Transaction Accredited", mp_payment.id)
39
54
  else
40
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
@@ -0,0 +1,6 @@
1
+ class AddErrorMessageToPaymentSource < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :solidus_mp_pix_payment_sources, :error_message, :string
4
+ add_column :solidus_mp_card_payment_sources, :error_message, :string
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusMp
4
- VERSION = '0.2.2'
4
+ VERSION = '0.3.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_mp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - caio
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-05 00:00:00.000000000 Z
11
+ date: 2024-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -114,6 +114,7 @@ files:
114
114
  - db/migrate/20231221130457_add_items_to_mp_pix.rb
115
115
  - db/migrate/20231221141935_add_items_to_mp_card.rb
116
116
  - db/migrate/20240105143500_add_status_to_payment_source.rb
117
+ - db/migrate/20240109171955_add_error_message_to_payment_source.rb
117
118
  - lib/generators/solidus_mp/install/install_generator.rb
118
119
  - lib/generators/solidus_mp/install/templates/app/javascript/controllers/credit_card_controller.js
119
120
  - lib/generators/solidus_mp/install/templates/app/javascript/controllers/three_ds_controller.js