inter_api 1.2.0 → 1.2.2

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: 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