superpay_api 0.0.1 → 0.0.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 +4 -4
- data/lib/superpay_api/helper.rb +68 -3
- data/lib/superpay_api/retorno.rb +3 -0
- data/lib/superpay_api/transacao.rb +56 -4
- data/lib/superpay_api/version.rb +1 -1
- data/lib/superpay_api/web_service.rb +81 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2eb84650369b7eaf9d1d694d3a349f05282e8d10
|
4
|
+
data.tar.gz: 837e54a1f561a01192de68daf7c0a2172f6d2ffe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe6a02d8583bad7822b944131dd3c30f709a54a19dadba0a7b918fb7964f129e7c9ff3417d7d28e346ca3f59a0cb7cf4744039c194f2a32a63d7e8b93a15276b
|
7
|
+
data.tar.gz: 776062eb709ce38b7e1429b5c2ea10d3f10ad9ecf35a5f73742c973d2df05b48af7e1bebedf9bd13eaf2f186ef83f6e197b8052906fd07d94125230229ae7f1f
|
data/lib/superpay_api/helper.rb
CHANGED
@@ -24,7 +24,45 @@ module SuperpayApi
|
|
24
24
|
params.merge! SuperpayApi.login
|
25
25
|
end
|
26
26
|
|
27
|
-
# Montar o Hash com a
|
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
|
-
|
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
|
-
|
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
|
data/lib/superpay_api/retorno.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
159
|
-
|
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
|
data/lib/superpay_api/version.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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.
|
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-
|
11
|
+
date: 2016-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|