solidus_mp 0.2.3 → 0.3.4

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: 74ec75fa7d047fc008dd680e7471a4f547ddb9ba8ffc9a1aae76ce0feee57bae
4
- data.tar.gz: 541d4d05bad0221c59a84c2ce02af4fa226d5c3c9783abe003873cf45494271d
3
+ metadata.gz: d5ba5e31166fc4e806d4668796cc9e7ef3adfbbe7083a780512e73ad43600790
4
+ data.tar.gz: bd2744631da9aa66e8cdf2adf2b026c84ccfcb7d621725e7113c65eee625399d
5
5
  SHA512:
6
- metadata.gz: ab8837d46c3276df7089f3c898954e4dbaaedb9391c0e51223430dea4405a79d69505aa0e3acf761e54f5fcbe0dba3816be69f80bb28a7e59a23b757c1251d30
7
- data.tar.gz: f8a947de786eae4233c255e3a6369dd5ac18d854c8e47be61dc4ae71ab35aeb14739615d4b0b8db51b2ad11ca30046acf583fcfb70b75e06d21221ce955b26ef
6
+ metadata.gz: aaa56ecbb91b39abc1aca44b3d63c96997a199e3819fef78644d4a8aa98482e2d0f0ffc0c94abc2f51085af68d1736f61997b946f10c5f2797cdae143528c8ae
7
+ data.tar.gz: 0756e7ac7922ebcbed3e6baf2c4347e4674c0f59cf2895ad04038bc4226a91b9d615558a95c3527a9993d6aab3991bccd601c12ba9cff11e80ad1666760ebc18
@@ -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 || "Ocorreu um erro ao criar o pagamento.", 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 || "Ocorreu um erro ao criar o pagamento.", 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.4'
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.3
4
+ version: 0.3.4
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-10 00:00:00.000000000 Z
11
+ date: 2024-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core