superpay_api 0.0.1 → 0.0.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
  SHA1:
3
- metadata.gz: e19b66538456ae34eae4448a9f6acdd191f64389
4
- data.tar.gz: 6884549fdd974f9924224cd4c7011dada8c0f9d9
3
+ metadata.gz: 2eb84650369b7eaf9d1d694d3a349f05282e8d10
4
+ data.tar.gz: 837e54a1f561a01192de68daf7c0a2172f6d2ffe
5
5
  SHA512:
6
- metadata.gz: 6e7752e4f932db0033ddf6fb7685d32558b2df4ddd0c2e9b068d25ed5430e345aeab6b545d26ea13d804c2a64a56f4bcedb9c11613e410d1ef5f23b27e41086d
7
- data.tar.gz: c5eac64d290bfa1598d0d50899a73cc94b63d94bcf679549d48bcf6ec590919184a363db497f828a58463869f8b7d707462cd573296d1fc404b4f4da9f6b82af
6
+ metadata.gz: fe6a02d8583bad7822b944131dd3c30f709a54a19dadba0a7b918fb7964f129e7c9ff3417d7d28e346ca3f59a0cb7cf4744039c194f2a32a63d7e8b93a15276b
7
+ data.tar.gz: 776062eb709ce38b7e1429b5c2ea10d3f10ad9ecf35a5f73742c973d2df05b48af7e1bebedf9bd13eaf2f186ef83f6e197b8052906fd07d94125230229ae7f1f
@@ -24,7 +24,45 @@ module SuperpayApi
24
24
  params.merge! SuperpayApi.login
25
25
  end
26
26
 
27
- # Montar o Hash com a resposta quando ocorre erro
27
+ # Montar o Hash com a requisição para Cancelar Transação
28
+ def build_request_cancelar_transacao numero_transacao
29
+ # Montar os parâmetros para consulta
30
+ params = {
31
+ operacao: {
32
+ codigo_estabelecimento: SuperpayApi.estabelecimento,
33
+ numero_transacao: numero_transacao,
34
+ operacao: 2,
35
+ }
36
+ }
37
+ # Adiciona as configurações de login
38
+ params.merge! SuperpayApi.login
39
+ end
40
+
41
+ # Montar o Hash com a requisição para Capturar Transação
42
+ def build_request_capturar_transacao numero_transacao
43
+ # Montar os parâmetros para consulta
44
+ params = {
45
+ operacao: {
46
+ codigo_estabelecimento: SuperpayApi.estabelecimento,
47
+ numero_transacao: numero_transacao,
48
+ operacao: 1,
49
+ }
50
+ }
51
+ # Adiciona as configurações de login
52
+ params.merge! SuperpayApi.login
53
+ end
54
+
55
+ # Montar o Hash com a requisição para Capturar Transação
56
+ def build_request_estorno_de_transacao numero_transacao, valor_estorno
57
+ # Montar os parâmetros para consulta
58
+ params = {
59
+ codigo_estabelecimento: SuperpayApi.estabelecimento,
60
+ numero_transacao: numero_transacao,
61
+ valor_estorno: valor_estorno,
62
+ }
63
+ end
64
+
65
+ # Montar o Hash com a resposta
28
66
  # [ResultadoPagamentosWS, ResultadoConsultaTransacaoWS]
29
67
  def build_response_retorno(resposta = {})
30
68
  response = resposta.to_array.first
@@ -32,14 +70,41 @@ module SuperpayApi
32
70
  return SuperpayApi::Retorno.new(response[:consulta_transacao_completa_response][:return])
33
71
  elsif !response[:pagamento_transacao_completa_response].blank?
34
72
  return SuperpayApi::Retorno.new(response[:pagamento_transacao_completa_response][:return])
73
+ elsif !response[:estorna_transacao_response].blank?
74
+ return response[:estorna_transacao_response][:return]
35
75
  else
36
- return resposta
76
+ retorno = SuperpayApi::Retorno.new
77
+ retorno.errors.add(:mensagem, "Resposta sem tratamento")
78
+ return retorno
37
79
  end
38
80
  end
39
81
 
40
82
  # Montar o Hash com a resposta quando ocorre erro
83
+ # O erro será registrado no objeto errors
41
84
  def build_response_error(resposta = {})
42
- return resposta
85
+ retorno = SuperpayApi::Retorno.new
86
+ retorno.errors.add(:code, resposta.to_hash[:fault][:faultcode]) unless resposta.to_hash[:fault][:faultcode].blank?
87
+ retorno.errors.add(:mensagem, resposta.to_hash[:fault][:faultstring]) unless resposta.to_hash[:fault][:faultstring].blank?
88
+ return retorno
89
+ end
90
+
91
+ # Monta string com a resposta do estorno
92
+ def build_response_retorno_estorno(resposta = {})
93
+ response = resposta.to_array.first
94
+ if !response[:estorna_transacao_response].blank?
95
+ return response[:estorna_transacao_response][:return]
96
+ else
97
+ return "Resposta sem tratamento"
98
+ end
99
+ end
100
+
101
+ # Monta string com a resposta quando ocorre erro no estorno
102
+ def build_response_error_estorno(resposta = {})
103
+ unless resposta.to_hash[:fault][:faultstring].blank?
104
+ return resposta.to_hash[:fault][:faultstring]
105
+ else
106
+ return "Resposta sem tratamento"
107
+ end
43
108
  end
44
109
 
45
110
  end
@@ -2,6 +2,9 @@
2
2
  module SuperpayApi
3
3
  class Retorno
4
4
 
5
+ # Validações do Rails 3
6
+ include ActiveModel::Validations
7
+
5
8
  # Código que identifica a transação dentro do SuperPay
6
9
  # Numérico - Até 8 dígitos
7
10
  attr_accessor :numero_transacao
@@ -143,20 +143,72 @@ module SuperpayApi
143
143
  end
144
144
 
145
145
  # Função para consultar transações
146
+ # numero_transacao => :integer
146
147
  def consulta_transacao numero_transacao
147
- resposta = web_service.consulta_transacao_completa numero_transacao
148
- resposta
148
+ web_service.consulta_transacao_completa numero_transacao
149
149
  end
150
150
 
151
151
  # Função para consultar transações
152
+ # numero_transacao => :integer
152
153
  def self.consulta_transacao numero_transacao
153
154
  self.new.consulta_transacao numero_transacao
154
155
  end
155
156
 
156
157
  # Função para realizar o pagamento de transações
157
158
  def enviar_pagamento
158
- resposta = web_service.pagamento_transacao_completa self
159
- resposta
159
+ web_service.pagamento_transacao_completa self
160
+ end
161
+
162
+ # Função para Cancelar transação
163
+ # numero_transacao => :integer
164
+ def cancelar_transacao numero_transacao
165
+ web_service.cancelar_transacao numero_transacao
166
+ end
167
+
168
+ # Função para Cancelar transação
169
+ # numero_transacao => :integer
170
+ def self.cancelar_transacao numero_transacao
171
+ self.new.cancelar_transacao numero_transacao
172
+ end
173
+
174
+ # Função para Capturar transação
175
+ # numero_transacao => :integer
176
+ def capturar_transacao numero_transacao
177
+ web_service.capturar_transacao numero_transacao
178
+ end
179
+
180
+ # Função para Capturar transação
181
+ # numero_transacao => :integer
182
+ def self.capturar_transacao numero_transacao
183
+ self.new.capturar_transacao numero_transacao
184
+ end
185
+
186
+ # Função para Estorno de transação
187
+ # numero_transacao => :integer
188
+ # valor_estorno => :integer
189
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos
190
+ def estorno_de_transacao numero_transacao, valor_estorno
191
+ web_service.estorno_de_transacao numero_transacao, valor_estorno
192
+ end
193
+
194
+ # Função para Estorno de transação
195
+ # numero_transacao => :integer
196
+ # valor_estorno => :integer
197
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos
198
+ def self.estorno_de_transacao numero_transacao, valor_estorno
199
+ self.new.estorno_de_transacao numero_transacao, valor_estorno
200
+ end
201
+
202
+ # Função para Localizar transação pela campainha
203
+ # notificacao => Hash
204
+ def localizar_pela_campainha notificacao = {}
205
+ consulta_transacao notificacao[:numero_transacao]
206
+ end
207
+
208
+ # Função para Localizar transação pela campainha
209
+ # notificacao => Hash
210
+ def self.localizar_pela_campainha notificacao = {}
211
+ self.new.localizar_pela_campainha notificacao
160
212
  end
161
213
 
162
214
  # Montar o Hash da transação no padrão utilizado pelo SuperPay
@@ -3,7 +3,7 @@ module SuperpayApi
3
3
  module Version
4
4
  MAJOR = 0
5
5
  MINOR = 0
6
- PATCH = 1
6
+ PATCH = 2
7
7
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
8
8
  end
9
9
  end
@@ -20,6 +20,17 @@ module SuperpayApi
20
20
  "xmlns:pag" => "http://pagamentos.webservices.superpay.ernet.com.br/",
21
21
  }
22
22
  )
23
+
24
+ @savon_client_estorno = Savon.client(
25
+ wsdl: ::SuperpayApi.url_estorno,
26
+ env_namespace: :soapenv,
27
+ convert_request_keys_to: :lower_camelcase,
28
+ namespace_identifier: :est,
29
+ namespaces: {
30
+ "xmlns:soapenv" => "http://schemas.xmlsoap.org/soap/envelope/",
31
+ "xmlns:est" => "http://estorno.webservices.superpay.ernet.com.br/",
32
+ }
33
+ )
23
34
  end
24
35
 
25
36
  # Função que faz a requisição para consulta_transacao_completa
@@ -36,7 +47,9 @@ module SuperpayApi
36
47
 
37
48
  # Verifica se a retorno veio correta ou se deu problema
38
49
  if retorno.blank?
39
- return {error: true}
50
+ retorno = SuperpayApi::Retorno.new
51
+ retorno.errors.add(:mensagem, "Resposta vazia")
52
+ return retorno
40
53
  else
41
54
  return helper.build_response_retorno(retorno)
42
55
  end
@@ -52,17 +65,82 @@ module SuperpayApi
52
65
  retorno = @savon_client.call(:pagamento_transacao_completa, message: params)
53
66
  rescue Savon::SOAPFault => error
54
67
  return helper.build_response_error(error)
55
- # return helper.build_response_error({error: error.to_hash[:fault][:faultstring]})
56
68
  end
57
69
 
58
70
  # Verifica se a retorno veio correta ou se deu problema
59
71
  if retorno.blank?
60
- return {error: true}
72
+ retorno = SuperpayApi::Retorno.new
73
+ retorno.errors.add(:mensagem, "Resposta vazia")
74
+ return retorno
75
+ else
76
+ return helper.build_response_retorno(retorno)
77
+ end
78
+ end
79
+
80
+ # Função que faz a requisição para cancelar_transacao
81
+ def cancelar_transacao(numero_transacao)
82
+ # Monta os parâmetros
83
+ params = helper.build_request_cancelar_transacao(numero_transacao)
84
+
85
+ # Faz a requisição para o wsdl
86
+ begin
87
+ retorno = @savon_client.call(:operacao_transacao, message: params)
88
+ rescue Savon::SOAPFault => error
89
+ return helper.build_response_error(error)
90
+ end
91
+
92
+ # Verifica se a retorno veio correta ou se deu problema
93
+ if retorno.blank?
94
+ retorno = SuperpayApi::Retorno.new
95
+ retorno.errors.add(:mensagem, "Resposta vazia")
96
+ return retorno
97
+ else
98
+ return helper.build_response_retorno(retorno)
99
+ end
100
+ end
101
+
102
+ # Função que faz a requisição para capturar_transacao
103
+ def capturar_transacao(numero_transacao)
104
+ # Monta os parâmetros
105
+ params = helper.build_request_capturar_transacao(numero_transacao)
106
+
107
+ # Faz a requisição para o wsdl
108
+ begin
109
+ retorno = @savon_client.call(:operacao_transacao, message: params)
110
+ rescue Savon::SOAPFault => error
111
+ return helper.build_response_error(error)
112
+ end
113
+
114
+ # Verifica se a retorno veio correta ou se deu problema
115
+ if retorno.blank?
116
+ retorno = SuperpayApi::Retorno.new
117
+ retorno.errors.add(:mensagem, "Resposta vazia")
118
+ return retorno
61
119
  else
62
120
  return helper.build_response_retorno(retorno)
63
121
  end
64
122
  end
65
123
 
124
+ # Função que faz a requisição para Estorno de transação
125
+ def estorno_de_transacao(numero_transacao, valor_estorno)
126
+ # Monta os parâmetros
127
+ params = helper.build_request_estorno_de_transacao(numero_transacao, valor_estorno)
128
+
129
+ # Faz a requisição para o wsdl
130
+ begin
131
+ retorno = @savon_client_estorno.call(:estorna_transacao, message: params)
132
+ rescue Savon::SOAPFault => error
133
+ return helper.build_response_error_estorno(error)
134
+ end
135
+
136
+ # Verifica se a retorno veio correta ou se deu problema
137
+ if retorno.blank?
138
+ return "Resposta vazia"
139
+ else
140
+ return helper.build_response_retorno_estorno(retorno)
141
+ end
142
+ end
143
+
66
144
  private
67
145
 
68
146
  # Acesso ao helper
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superpay_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - QW3 Software & Marketing
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-12 00:00:00.000000000 Z
11
+ date: 2016-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel