inter_api 1.2.0 → 1.2.2

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: 7d77077d418fcb6c96e9e683ee7b0831534e86d6081dac40a54b94131ff453c7
4
- data.tar.gz: f808a066748b8abafb96fb8381f45e0c3d8b50d3b562aee731e7ca62a3ca33f0
3
+ metadata.gz: 9a2555a22b99f4a0e9a14bcbb073f041b4ac7c0eaa4e9ef84a0a00991c27ca37
4
+ data.tar.gz: 6151582d3b22e91d83a20ce821490b7b93d4e8b69b9079d6d694330a70df270e
5
5
  SHA512:
6
- metadata.gz: 68e3a0a5c75b65d42a0bc97e67ba75dfa781eeec0448c28583d32fd629c412081cbfc9a26a89a56dcc299935070a3a9929bcfbd0bf523ae4a8961a5cde0914d3
7
- data.tar.gz: 3eca03db418816378f6e1c7d3ccb61c79e9e5999dd836c367f3e9104fbd59b7d15d126268497fb55ac39818261f7c66f3488d401427713ef7aa693db12204d8b
6
+ metadata.gz: f01af849e0129792c48c37b76cc775e6dda0b40dde454ced0ffa4cbdfdf1cfb4499729911e4b6360dc2299dd14bddcb6ebed59ed312a4f8661bd833a2e6b60bb
7
+ data.tar.gz: 7fb2300d3b7dfc5f63042e60664e44c924fab5a595b72e5367eb9555bbc1b88b55a4cb11e93b463a7160eb3568adc7770ad3f974ef99246317eb66008124ea6e
@@ -5,7 +5,7 @@ module InterApi
5
5
 
6
6
  attr_reader :crt, :key, :client_id, :client_secret, :chave_pix, :conta_corrente, :scopes
7
7
  attr_accessor :token, :token_expires_at
8
- def initialize(crt:, key:, client_id:, client_secret:, chave_pix:, conta_corrente:, scopes: "cobv.write cobv.read cob.write cob.read pix.write pix.read", token: nil, token_expires_at: nil)
8
+ def initialize(crt:, key:, client_id:, client_secret:, chave_pix:, conta_corrente:, scopes: "cobv.write cobv.read cob.write cob.read pix.write pix.read webhook.read webhook.write", token: nil, token_expires_at: nil)
9
9
  @crt = crt
10
10
  @key = key
11
11
  @client_id = client_id
@@ -61,12 +61,11 @@ module InterApi
61
61
  post_request("/pix/v2/cob", headers: build_headers, sslcert: @crt, sslkey: @key, body: JSON.dump(body))
62
62
  end
63
63
 
64
- def create_payment(amount:, payer_tax_id:, payer_name:, expiration: 3600, solicitacao_pagador: nil, info_adicionais: [])
64
+ def create_payment(amount:, payer_tax_id: nil, payer_name: nil, expiration: 3600, solicitacao_pagador: nil, info_adicionais: [])
65
65
  body = {
66
66
  calendario: {
67
67
  expiracao: expiration
68
68
  },
69
- devedor: build_devedor(payer_tax_id, payer_name),
70
69
  valor: {
71
70
  original: format("%.2f", amount),
72
71
  modalidadeAlteracao: 0
@@ -75,6 +74,8 @@ module InterApi
75
74
  solicitacaoPagador: solicitacao_pagador,
76
75
  infoAdicionais: info_adicionais
77
76
  }
77
+ body[:devedor] = build_devedor(payer_tax_id, payer_name) if payer_tax_id && payer_name
78
+
78
79
  response = post("/pix/v2/cob", headers: build_headers, sslcert: @crt, sslkey: @key, body: JSON.dump(body)) { |response| validate_response(response, "txid") }
79
80
  InterApi::Payment.new(response.json, self)
80
81
  end
@@ -104,6 +105,18 @@ module InterApi
104
105
  response.json
105
106
  end
106
107
 
108
+ def update_webhook(url)
109
+ body = {
110
+ webhookUrl: url
111
+ }
112
+ put("/pix/v2/webhook/#{@chave_pix}", headers: build_headers, sslcert: @crt, sslkey: @key, body: JSON.dump(body)) { |response| response.success? }
113
+ end
114
+
115
+ def get_webhook
116
+ response = get("/pix/v2/webhook/#{@chave_pix}", headers: build_headers, sslcert: @crt, sslkey: @key) { |response| validate_response(response, "webhookUrl") }
117
+ response.json
118
+ end
119
+
107
120
  private
108
121
 
109
122
  def build_devedor(payer_tax_id, payer_name)
@@ -1,6 +1,6 @@
1
1
  module InterApi
2
2
  class Payment
3
- attr_reader :response, :txid, :end_to_end_id, :devolucoes, :copia_e_cola, :status, :solicitacao, :info_adicionais, :valor_original, :valor_pago, :criacao, :expiracao, :devedor_nome, :devedor_tax_id, :internal_error
3
+ attr_reader :response, :txid, :end_to_end_id, :devolucoes, :copia_e_cola, :status, :solicitacao, :info_adicionais, :valor_original, :valor_pago, :criacao, :expiracao, :pago_em, :devedor_nome, :devedor_tax_id, :internal_error
4
4
  def initialize(response, client)
5
5
  @client = client
6
6
  @response = response
@@ -15,13 +15,15 @@ module InterApi
15
15
  @valor_pago = response.dig("pix", 0, "valor")
16
16
  @criacao = creation_date
17
17
  @expiracao = expiration_date
18
+ @pago_em = paid_date
18
19
  @devedor_nome = response.dig("devedor", "nome")
19
20
  @devedor_tax_id = response.dig("devedor", "cpf") || response.dig("devedor", "cnpj")
20
21
  @internal_error = PaymentError.new(response).internal_error
21
22
  end
22
23
 
23
- def paid?
24
- @status == "CONCLUIDA" && @valor_original.to_d == @valor_pago.to_d
24
+ def paid? external_value = nil
25
+ external_value = @valor_original if external_value.nil?
26
+ @status == "CONCLUIDA" && @valor_original.to_d == @valor_pago.to_d && external_value.to_d == @valor_pago.to_d
25
27
  end
26
28
 
27
29
  def valid?
@@ -68,5 +70,10 @@ module InterApi
68
70
  return nil unless @response.dig("calendario", "criacao")
69
71
  Time.new(@response.dig("calendario", "criacao")) + @response.dig("calendario", "expiracao")
70
72
  end
73
+
74
+ def paid_date
75
+ return nil unless @response.dig("pix", 0, "horario")
76
+ Time.new(@response.dig("pix", 0, "horario"))
77
+ end
71
78
  end
72
79
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module InterApi
4
- VERSION = "1.2.0"
4
+ VERSION = "1.2.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inter_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todas Essas Coisas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-14 00:00:00.000000000 Z
11
+ date: 2024-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ac