solidus_mp 0.2.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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