superpay_api 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e19b66538456ae34eae4448a9f6acdd191f64389
4
+ data.tar.gz: 6884549fdd974f9924224cd4c7011dada8c0f9d9
5
+ SHA512:
6
+ metadata.gz: 6e7752e4f932db0033ddf6fb7685d32558b2df4ddd0c2e9b068d25ed5430e345aeab6b545d26ea13d804c2a64a56f4bcedb9c11613e410d1ef5f23b27e41086d
7
+ data.tar.gz: c5eac64d290bfa1598d0d50899a73cc94b63d94bcf679549d48bcf6ec590919184a363db497f828a58463869f8b7d707462cd573296d1fc404b4f4da9f6b82af
@@ -0,0 +1,171 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ module Configuracao
4
+
5
+ # Endereço do wsdl funções:
6
+ # [Criar Transação pagamentoTransacaoCompleta, Capturar operacaoTransacao, Cancelar operacaoTransacao, Consultar consultaTransacaoEspecifica]
7
+ # [Estornar estornaTransacao] - Estorno
8
+ URL = {
9
+ :homologacao => "https://homologacao.superpay.com.br/superpay/servicosPagamentoCompletoWS.Services?wsdl",
10
+ :homologacao_estorno => "https://homologacao.superpay.com.br/superpay/servicosEstornoWS.Services?wsdl",
11
+ :producao => "https://superpay2.superpay.com.br/checkout/servicosPagamentoCompletoWS.Services?wsdl",
12
+ :producao_estorno => "https://superpay2.superpay.com.br/checkout/servicosEstornoWS.Services?wsdl",
13
+ }
14
+
15
+ # Opções de idiomas
16
+ IDIOMAS = {
17
+ :portugues => 1,
18
+ :ingles => 2,
19
+ :espanhol => 3,
20
+ }
21
+
22
+ # Opções de Origem da Transação
23
+ # Consulte área de suporte sobre a habilitação das origens
24
+ ORIGEM_DA_TRANSACAO ={
25
+ :ecommerce => 1,
26
+ :mobile => 2,
27
+ :ura => 3,
28
+ :pos => 4,
29
+ }
30
+
31
+ # Retornar array com os possíveis idiomas
32
+ def self.validos
33
+ IDIOMAS.map{ |key, value| key }
34
+ end
35
+
36
+ # Retornar array com as possíveis Origem da Transação
37
+ def self.origem_da_transacao_validos
38
+ ORIGEM_DA_TRANSACAO.map{ |key, value| key }
39
+ end
40
+
41
+ # Parâmetros iniciais
42
+ URL_CAMPAINHA = 'http://localhost:3000'
43
+ # Parâmetros iniciais
44
+ IDIOMA = :portugues
45
+ # Parâmetros iniciais
46
+ ORIGEM_TRANSACAO = :ecommerce
47
+ # Parâmetros iniciais
48
+ AMBIENTE = :homologacao # :homologacao ou :producao
49
+ # Parâmetros iniciais
50
+ USUARIO = 'superpay'
51
+ # Parâmetros iniciais
52
+ SENHA = 'superpay'
53
+ # Parâmetros iniciais
54
+ ESTABELECIMENTO = 1010101010101010
55
+
56
+ # Define o ambiente de trabalho
57
+ # Simbolo - Valores pré-definidos [:homologacao, :producao]
58
+ attr_writer :ambiente
59
+
60
+ # Código que identifica o estabelecimento dentro do SuperPay (fornecido pelo gateway)
61
+ # Enviado pelo SuperPay
62
+ attr_writer :estabelecimento
63
+
64
+ # URL será sempre acionada quando o status do pedido mudar. Deve estar preparada para receber dados de campainha
65
+ # Alfa Numérico - Até 250 caracteres
66
+ attr_writer :url_campainha
67
+
68
+ # Código do idioma. Ver tabela “Idiomas”
69
+ # Simbolo - Valores pré-definidos
70
+ attr_writer :idioma
71
+
72
+ # Código do ambiente de origem. Verificar tabela “Ambientes de Origem”
73
+ # Simbolo - Valores pré-definidos
74
+ attr_writer :origem_transacao
75
+
76
+ # Enviado pelo SuperPay
77
+ attr_writer :usuario
78
+
79
+ # Enviado pelo SuperPay
80
+ attr_writer :senha
81
+
82
+ # Comando que recebe as configuracoes
83
+ def configure
84
+ yield self if block_given?
85
+ end
86
+
87
+ # Definir ambiente
88
+ def ambiente
89
+ @ambiente ||= AMBIENTE
90
+ end
91
+
92
+ # Definir url_campainha
93
+ def url_campainha
94
+ @url_campainha ||= URL_CAMPAINHA
95
+ end
96
+
97
+ # Definir idioma
98
+ def idioma
99
+ @idioma ||= IDIOMA
100
+ end
101
+
102
+ # Definir origem_transacao
103
+ def origem_transacao
104
+ @origem_transacao ||= ORIGEM_TRANSACAO
105
+ end
106
+
107
+ # Definir usuario
108
+ def usuario
109
+ @usuario ||= USUARIO
110
+ end
111
+
112
+ # Definir senha
113
+ def senha
114
+ @senha ||= SENHA
115
+ end
116
+
117
+ # Definir estabelecimento
118
+ def estabelecimento
119
+ @estabelecimento ||= ESTABELECIMENTO
120
+ end
121
+
122
+ # Montar o Hash de Login no padrão utilizado pelo SuperPay
123
+ def login
124
+ login = {
125
+ usuario: usuario.to_s,
126
+ senha: senha.to_s,
127
+ }
128
+ return login
129
+ end
130
+
131
+ # Retornar o número do idioma no padrão utilizado pelo SuperPay
132
+ def idiomas_to_request
133
+ IDIOMAS[self.idioma].to_i
134
+ end
135
+
136
+ # Retornar o número da origem da transacao no padrão utilizado pelo SuperPay
137
+ def origem_da_transacao_to_request
138
+ ORIGEM_DA_TRANSACAO[self.origem_transacao].to_i
139
+ end
140
+
141
+ # Montar o Hash de configurações no padrão utilizado pelo SuperPay
142
+ def configuracoes_to_request
143
+ configuracoes = {
144
+ codigo_estabelecimento: self.estabelecimento.to_i,
145
+ url_campainha: self.url_campainha.to_s,
146
+ idioma: self.idiomas_to_request,
147
+ origem_transacao: self.origem_da_transacao_to_request,
148
+ }
149
+ return configuracoes
150
+ end
151
+
152
+ # Retornar a url conforme o ambiente
153
+ def url
154
+ if ambiente == :producao
155
+ SuperpayApi::Configuracao::URL[:producao]
156
+ else
157
+ SuperpayApi::Configuracao::URL[:homologacao]
158
+ end
159
+ end
160
+
161
+ # Retornar a url conforme o ambiente
162
+ def url_estorno
163
+ if ambiente == :producao
164
+ SuperpayApi::Configuracao::URL[:producao_estorno]
165
+ else
166
+ SuperpayApi::Configuracao::URL[:homologacao_estorno]
167
+ end
168
+ end
169
+
170
+ end
171
+ end
@@ -0,0 +1,144 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class DadosUsuario
4
+
5
+ # Opções de Sexo
6
+ SEXO = {
7
+ :masculino => "M",
8
+ :feminino => "F",
9
+ }
10
+
11
+ # Opções de Tipo de Cliente
12
+ TIPOS_DE_CLIENTE = {
13
+ :pessoa_fisica => 1,
14
+ :pessoa_juridica => 2,
15
+ }
16
+
17
+ # Código que identifica o cliente no estabelecimento.
18
+ # Alfa Numérico - Até 20 caracteres
19
+ attr_accessor :codigo_cliente
20
+
21
+ # Identifica se o cliente é pessoa física ou jurídica. Ver tabela “Tipo Cliente”
22
+ # Simbolo - Valores pré-definidos [:pessoa_fisica, :pessoa_juridica]
23
+ attr_accessor :tipo_cliente
24
+
25
+ # Nome do comprador
26
+ # Alfa Numérico - Até 100 caracteres
27
+ attr_accessor :nome
28
+
29
+ # E-mail do comprador
30
+ # Alfa Numérico - Até 100 caracteres
31
+ attr_accessor :email
32
+
33
+ # Documento principal do comprador
34
+ # Alfa Numérico - Até 30 caracteres
35
+ attr_accessor :documento
36
+
37
+ # Documento complementar do comprador
38
+ # Alfa Numérico - Até 30 caracteres
39
+ attr_accessor :documento_2
40
+
41
+ # M – Masculino / F – Feminino
42
+ # Simbolo - Valores pré-definidos [:masculino, :feminino]
43
+ attr_accessor :sexo
44
+
45
+ # Data de nascimento do comprador. Formato dd/mm/yyyy
46
+ # Alfa Numérico - Até 10 caracteres
47
+ attr_accessor :data_nascimento
48
+
49
+ # Endereços
50
+ # SuperpayApi::Endereco
51
+ attr_accessor :endereco_comprador, :endereco_entrega
52
+
53
+ # Telefones
54
+ # SuperpayApi::Telefone
55
+ attr_accessor :telefone_comprador, :telefone_adicional_comprador, :telefone_entrega, :telefone_adicional_entrega
56
+
57
+ # Validações do Rails 3
58
+ include ActiveModel::Validations
59
+
60
+ # Retornar array com os possíveis sexos
61
+ def self.sexos_validos
62
+ SEXO.map{ |key, value| key }
63
+ end
64
+
65
+ # Retornar array com os possíveis tipos de cliente
66
+ def self.tipos_de_cliente_validos
67
+ TIPOS_DE_CLIENTE.map{ |key, value| key }
68
+ end
69
+
70
+ # Validações
71
+ validates :sexo, inclusion: { in: SuperpayApi::DadosUsuario.sexos_validos }, allow_nil: true
72
+ validates :tipo_cliente, inclusion: { in: SuperpayApi::DadosUsuario.tipos_de_cliente_validos }, allow_nil: true
73
+ validates :codigo_cliente, length: { maximum: 20 }
74
+ validates :nome, :email, length: { maximum: 100 }
75
+ validates :documento, :documento_2, length: { maximum: 30 }
76
+ validates :data_nascimento, length: { maximum: 10 }
77
+
78
+ validates_each [:endereco_comprador, :endereco_entrega], allow_nil: true do |record, attr, value|
79
+ if value.is_a? SuperpayApi::Endereco
80
+ if value.invalid?
81
+ value.errors.full_messages.each { |msg| record.errors.add(attr, msg) }
82
+ end
83
+ else
84
+ record.errors.add(attr, 'deve ser um objeto SuperpayApi::Endereco.')
85
+ end
86
+ end
87
+
88
+ validates_each [:telefone_comprador, :telefone_adicional_comprador, :telefone_entrega, :telefone_adicional_entrega], allow_nil: true do |record, attr, value|
89
+ if value.is_a? SuperpayApi::Telefone
90
+ if value.invalid?
91
+ value.errors.full_messages.each { |msg| record.errors.add(attr, msg) }
92
+ end
93
+ else
94
+ record.errors.add(attr, 'deve ser um objeto SuperpayApi::Telefone.')
95
+ end
96
+ end
97
+
98
+ # Nova instancia da classe DadosUsuario
99
+ # @param [Hash] campos
100
+ def initialize(campos = {})
101
+ campos.each do |campo, valor|
102
+ if SuperpayApi::DadosUsuario.public_instance_methods.include? "#{campo}=".to_sym
103
+ send "#{campo}=", valor
104
+ end
105
+ end
106
+ end
107
+
108
+ # Retornar o número do tipo de telefone no padrão utilizado pelo SuperPay
109
+ def sexo_to_request
110
+ SEXO[self.sexo]
111
+ end
112
+
113
+ # Retornar o número do tipo de telefone no padrão utilizado pelo SuperPay
114
+ def tipos_de_cliente_to_request
115
+ TIPOS_DE_CLIENTE[self.tipo_cliente]
116
+ end
117
+
118
+ # Montar o Hash de dados do usuario no padrão utilizado pelo SuperPay
119
+ def to_request
120
+ dados_usuario = {
121
+ codigo_cliente: self.codigo_cliente,
122
+ tipo_cliente: self.tipos_de_cliente_to_request,
123
+ nome_comprador: self.nome,
124
+ documento_comprador: self.documento,
125
+ documento_2_comprador: self.documento_2,
126
+ sexo_comprador: self.sexo_to_request,
127
+ data_nascimento_comprador: self.data_nascimento,
128
+ email_comprador: self.email,
129
+ }
130
+ # Adiciona os dados de endereços
131
+ dados_usuario.merge! self.endereco_comprador.to_request("endereco_comprador") unless endereco_comprador.blank?
132
+ dados_usuario.merge! self.endereco_entrega.to_request("endereco_entrega") unless endereco_entrega.blank?
133
+
134
+ # Adiciona os dados de telefones
135
+ dados_usuario.merge! self.telefone_comprador.to_request("comprador") unless telefone_comprador.blank?
136
+ dados_usuario.merge! self.telefone_adicional_comprador.to_request("adicional_comprador") unless telefone_adicional_comprador.blank?
137
+ dados_usuario.merge! self.telefone_entrega.to_request("entrega") unless telefone_entrega.blank?
138
+ dados_usuario.merge! self.telefone_adicional_entrega.to_request("adicional_entrega") unless telefone_adicional_entrega.blank?
139
+
140
+ return dados_usuario
141
+ end
142
+
143
+ end
144
+ end
@@ -0,0 +1,84 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class Endereco
4
+
5
+ # Endereço (Logradouro)
6
+ # Alfa Numérico - Até 100 caracteres
7
+ attr_accessor :logradouro
8
+
9
+ # Número do logradouro
10
+ # Alfa Numérico - Até 10 caracteres
11
+ attr_accessor :numero
12
+
13
+ # Bairro do logradouro
14
+ # Alfa Numérico - Até 50 caracteres
15
+ attr_accessor :bairro
16
+
17
+ # Complemento do endereço comprador
18
+ # Alfa Numérico - Até 50 caracteres
19
+ attr_accessor :complemento
20
+
21
+ # Cidade do logradouro
22
+ # Alfa Numérico - Até 50 caracteres
23
+ attr_accessor :cidade
24
+
25
+ # Estado do logradouro
26
+ # Alfa Numérico - Até 2 caracteres
27
+ attr_accessor :estado
28
+
29
+ # CEP. Enviar sem traços ou espaços
30
+ # Alfa Numérico - Até 10 caracteres
31
+ attr_accessor :cep
32
+
33
+ # Validações do Rails 3
34
+ include ActiveModel::Validations
35
+
36
+ # Validações
37
+ validates :logradouro, length: { maximum: 100 }
38
+ validates :numero, :cep, length: { maximum: 10 }
39
+ validates :bairro, :complemento, :cidade, length: { maximum: 50 }
40
+ validates :estado, length: { maximum: 2 }
41
+
42
+ # Nova instancia da classe Endereco
43
+ # @param [Hash] campos
44
+ def initialize(campos = {})
45
+ campos.each do |campo, valor|
46
+ if SuperpayApi::Endereco.public_instance_methods.include? "#{campo}=".to_sym
47
+ send "#{campo}=", valor
48
+ end
49
+ end
50
+ end
51
+
52
+ # Montar o Hash de Endereco conforme o tipo dele no padrão utilizado pelo SuperPay
53
+ # tipo: [:endereco_comprador, :endereco_entrega]
54
+ def to_request tipo
55
+ endereco = {}
56
+ case tipo.to_sym
57
+ when :endereco_comprador then
58
+ endereco = {
59
+ endereco_comprador: self.logradouro,
60
+ numero_endereco_comprador: self.numero,
61
+ bairro_endereco_comprador: self.bairro,
62
+ complemento_endereco_comprador: self.complemento,
63
+ cidade_endereco_comprador: self.cidade,
64
+ estado_endereco_comprador: self.estado,
65
+ cep_endereco_comprador: self.cep,
66
+ }
67
+ when :endereco_entrega then
68
+ endereco = {
69
+ endereco_entrega: self.logradouro,
70
+ numero_endereco_entrega: self.numero,
71
+ bairro_endereco_entrega: self.bairro,
72
+ complemento_endereco_entrega: self.complemento,
73
+ cidade_endereco_entrega: self.cidade,
74
+ estado_endereco_entrega: self.estado,
75
+ cep_endereco_entrega: self.cep,
76
+ }
77
+ else
78
+ raise 'Endereço inválido.'
79
+ end
80
+ return endereco
81
+ end
82
+
83
+ end
84
+ end
@@ -0,0 +1,56 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class FormaDePagamento
4
+
5
+ # Opções de Formas de Pagamento
6
+ FORMAS_DE_PAGAMENTO = {
7
+ 52 => "Cielo - Checkout Redirect",
8
+ 120 => "Cielo - Visa WebService",
9
+ 121 => "Cielo - MasterCard WebService",
10
+ 122 => "Cielo - American Express WebService",
11
+ 123 => "Cielo - ELO WebService",
12
+ 124 => "Cielo - Diners WebService",
13
+ 125 => "Cielo - Discover WebService",
14
+ 126 => "Cielo - Aura WebService",
15
+ 127 => "Cielo - JCB WebService",
16
+ 128 => "Cielo - Maestro WebService",
17
+ 129 => "Cielo - Visa Electron WebService",
18
+ 130 => "Cielo - Visa Redirect",
19
+ 131 => "Cielo - MasterCard Redirect",
20
+ 132 => "Cielo - American Express Redirect",
21
+ 133 => "Cielo - ELO Redirect",
22
+ 134 => "Cielo - Diners Redirect",
23
+ 135 => "Cielo - Discover Redirect",
24
+ 136 => "Cielo - Aura Redirect",
25
+ 137 => "Cielo - JCB Redirect",
26
+ 138 => "Cielo - Maestro Redirect",
27
+ 139 => "Cielo - Visa Electron Redirect",
28
+ 80 => "Rede - Visa Komerci Integrado Redirect",
29
+ 81 => "Rede - MasterCard Komerci Integrado Redirect",
30
+ 82 => "Rede - Diners Komerci Integrado Redirect",
31
+ 90 => "Rede - Visa Komerci WebService WebService",
32
+ 91 => "Rede - MasterCard Komerci WebService WebService",
33
+ 92 => "Rede - Diners Komerci WebService WebService",
34
+ 93 => "Rede - Hpercard Komerci WebService WebService",
35
+ 94 => "Rede - Hiper Komerci WebService WebService",
36
+ 204 => "Elavon - Visa WebService",
37
+ 205 => "Elavon - MasterCard WebService",
38
+ 206 => "Elavon - Diners WebService",
39
+ 207 => "Elavon - Discover WebService",
40
+ 270 => "GetNet - Visa WebService",
41
+ 271 => "GetNet - MasterCard WebService",
42
+ 350 => "Stone - Visa WebService",
43
+ 351 => "Stone - MasterCard WebService",
44
+ 380 => "Bin-FirstData - Visa WebService",
45
+ 381 => "Bin-FirstData - MasterCard WebService",
46
+ 382 => "Bin-FirstData - Cabal WebService",
47
+ 999 => "Múltiplos Cartões WebService",
48
+ }
49
+
50
+ # Retornar array com as possíveis Formas de Pagamento
51
+ def self.validos
52
+ FORMAS_DE_PAGAMENTO.map{ |key, value| key }
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,46 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class Helper
4
+
5
+ # Montar o Hash com a requisição de consulta transação completo
6
+ def build_request_consulta_transacao_completa numero_transacao
7
+ # Montar os parâmetros para consulta
8
+ params = {
9
+ consulta_transacao_w_s: {
10
+ codigo_estabelecimento: SuperpayApi.estabelecimento,
11
+ numero_transacao: numero_transacao,
12
+ }
13
+ }
14
+ # Adiciona as configurações de login
15
+ params.merge! SuperpayApi.login
16
+ end
17
+
18
+ # Montar o Hash com a requisição de pagamento transação completo
19
+ def build_request_pagamento_transacao_completa transacao
20
+ # Montar os parâmetros para pagamento transacao completa
21
+ params = {}
22
+ params[:transacao] = transacao.to_request
23
+ # Adiciona as configurações de login
24
+ params.merge! SuperpayApi.login
25
+ end
26
+
27
+ # Montar o Hash com a resposta quando ocorre erro
28
+ # [ResultadoPagamentosWS, ResultadoConsultaTransacaoWS]
29
+ def build_response_retorno(resposta = {})
30
+ response = resposta.to_array.first
31
+ if !response[:consulta_transacao_completa_response].blank?
32
+ return SuperpayApi::Retorno.new(response[:consulta_transacao_completa_response][:return])
33
+ elsif !response[:pagamento_transacao_completa_response].blank?
34
+ return SuperpayApi::Retorno.new(response[:pagamento_transacao_completa_response][:return])
35
+ else
36
+ return resposta
37
+ end
38
+ end
39
+
40
+ # Montar o Hash com a resposta quando ocorre erro
41
+ def build_response_error(resposta = {})
42
+ return resposta
43
+ end
44
+
45
+ end
46
+ end
@@ -0,0 +1,64 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class ItemPedido
4
+
5
+ # Código único que identifica cada produto.
6
+ # Alfa Numérico - Até 20 caracteres
7
+ attr_accessor :codigo_produto
8
+
9
+ # Código que identifica categoria do produto.
10
+ # Alfa Numérico - Até 20 caracteres
11
+ attr_accessor :codigo_categoria
12
+
13
+ # Nome do Produto
14
+ # Alfa Numérico - Até 100 caracteres
15
+ attr_accessor :nome_produto
16
+
17
+ # Quantidade comprada do produto
18
+ # Numérico - Até 8 dígitos
19
+ attr_accessor :quantidade_produto
20
+
21
+ # Valor unitário do produto.
22
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos.
23
+ # Numérico - Até 10 dígitos
24
+ attr_accessor :valor_unitario_produto
25
+
26
+ # Nome da categoria do produto.
27
+ # Alfa Numérico - Até 100 caracteres
28
+ attr_accessor :nome_categoria
29
+
30
+ # Validações do Rails 3
31
+ include ActiveModel::Validations
32
+
33
+ # Validações
34
+ validates :quantidade_produto, :valor_unitario_produto, numericality: true, allow_nil: true
35
+ validates :codigo_produto, :codigo_categoria, length: { maximum: 20 }
36
+ validates :nome_produto, :nome_categoria, length: { maximum: 100 }
37
+ validates :quantidade_produto, length: { maximum: 8 }
38
+ validates :valor_unitario_produto, length: { maximum: 10 }
39
+
40
+ # Nova instancia da classe ItemPedido
41
+ # @param [Hash] campos
42
+ def initialize(campos = {})
43
+ campos.each do |campo, valor|
44
+ if SuperpayApi::ItemPedido.public_instance_methods.include? "#{campo}=".to_sym
45
+ send "#{campo}=", valor
46
+ end
47
+ end
48
+ end
49
+
50
+ # Montar o Hash de dados do ItemPedido no padrão utilizado pelo SuperPay
51
+ def to_request
52
+ item_pedido = {
53
+ codigo_produto: self.codigo_produto,
54
+ codigo_categoria: self.codigo_categoria,
55
+ nome_produto: self.nome_produto,
56
+ quantidade_produto: self.quantidade_produto,
57
+ valor_unitario_produto: self.valor_unitario_produto,
58
+ nome_categoria: self.nome_categoria,
59
+ }
60
+ return item_pedido
61
+ end
62
+
63
+ end
64
+ end
@@ -0,0 +1,80 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class Retorno
4
+
5
+ # Código que identifica a transação dentro do SuperPay
6
+ # Numérico - Até 8 dígitos
7
+ attr_accessor :numero_transacao
8
+
9
+ # Código que identifica o estabelecimento dentro do SuperPay (fornecido pelo gateway)
10
+ # Enviado pelo SuperPay
11
+ attr_accessor :codigo_estabelecimento
12
+
13
+ # Código da forma de pagamento. Ver tabela “Forma de Pagamento”
14
+ # Simbolo - Valores pré-definidos - Verifique classe SuperpayApi::FormaDePagamento
15
+ attr_accessor :codigo_forma_pagamento
16
+
17
+ # Valor da transação
18
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos.
19
+ # Numérico - Até 10 dígitos
20
+ attr_accessor :valor
21
+
22
+ # Valor do desconto da transação
23
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos.
24
+ # Numérico - Até 10 dígitos
25
+ attr_accessor :valor_desconto
26
+
27
+ # Valor da taxa de embarque
28
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos.
29
+ # Numérico - Até 10 dígitos
30
+ attr_accessor :taxa_embarque
31
+
32
+ # Quantidade de parcelas da transação. Verificar se forma de pagamento suporta parcelamento
33
+ # Numérico - Até 2 dígitos
34
+ attr_accessor :parcelas
35
+
36
+ # Para o modelo redirect. Essa será a URL de redirecionamento da operação.
37
+ # Alfa Numérico - Até 500 caracteres
38
+ attr_accessor :url_pagamento
39
+
40
+ # Código que mostra o status atual da transação. Verificar tabela “Status”
41
+ # Simbolo - Valores pré-definidos - Verifique classe SuperpayApi::Status
42
+ attr_accessor :status_transacao
43
+
44
+ # Código de autorização da operadora/banco/intermediário financeiro
45
+ # Numérico - Até 20 dígitos
46
+ attr_accessor :autorizacao
47
+
48
+ # Código da transação na operadora/banco/intermediário financeiro
49
+ # Numérico - Até 20 dígitos
50
+ attr_accessor :codigo_transacao_operadora
51
+
52
+ # Data de aprovação na operadora
53
+ # Alfa Numérico - Até 10 caracteres
54
+ attr_accessor :data_aprovacao_operadora
55
+
56
+ # Número do comprovante de venda
57
+ # Alfa Numérico - Até 20 caracteres
58
+ attr_accessor :numero_comprovante_venda
59
+
60
+ # Mensagem de retorno da operadora
61
+ # Alfa Numérico - Até 50 caracteres
62
+ attr_accessor :mensagem_venda
63
+
64
+ # Retorna o status conforme classe SuperpayApi::Status
65
+ def status
66
+ @status ||= SuperpayApi::Status::STATUS[self.status_transacao.to_i]
67
+ end
68
+
69
+ # Nova instancia da classe Retorno
70
+ # @param [Hash] campos
71
+ def initialize(campos = {})
72
+ campos.each do |campo, valor|
73
+ if SuperpayApi::Retorno.public_instance_methods.include? "#{campo}=".to_sym
74
+ send "#{campo}=", valor.to_s
75
+ end
76
+ end
77
+ end
78
+
79
+ end
80
+ end
@@ -0,0 +1,55 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class Status
4
+
5
+ # Map Status para Texto.
6
+ MAPPING = {
7
+ :autorizado_e_confirmado => "Autorizado e Confirmado",
8
+ :autorizado => "Autorizado",
9
+ :nao_autorizado => "Não Autorizado",
10
+ :transacao_em_andamento => "Transação em Andamento",
11
+ :aguardando_pagamento => "Aguardando Pagamento",
12
+ :falha_na_operadora => "Falha na Operadora",
13
+ :cancelado => "Cancelado",
14
+ :estornada => "Estornada",
15
+ :em_analise_de_risco => "Em Análise de Risco",
16
+ :recusado_analise_de_risco => "Recusado Análise de Risco",
17
+ :falha_no_envio_para_analise_de_risco => "Falha no envio para Análise de Risco",
18
+ :boleto_pago_a_menor => "Boleto Pago a menor",
19
+ :boleto_pago_a_maior => "Boleto Pago a maior",
20
+ :estorno_parcial => "Estorno Parcial",
21
+ :estorno_nao_autorizado => "Estorno Não Autorizado",
22
+ :operacao_em_andamento => "Operação em andamento",
23
+ :transacao_ja_efetuada => "Transação já efetuada",
24
+ :aguardando_cancelamento => "Aguardando Cancelamento",
25
+ }
26
+
27
+ # Opções de Status das Transações
28
+ STATUS = {
29
+ 1 => :autorizado_e_confirmado,
30
+ 2 => :autorizado,
31
+ 3 => :nao_autorizado,
32
+ 5 => :transacao_em_andamento,
33
+ 8 => :aguardando_pagamento,
34
+ 9 => :falha_na_operadora,
35
+ 13 => :cancelado,
36
+ 14 => :estornada,
37
+ 15 => :em_analise_de_risco,
38
+ 17 => :recusado_analise_de_risco,
39
+ 18 => :falha_no_envio_para_analise_de_risco,
40
+ 21 => :boleto_pago_a_menor,
41
+ 22 => :boleto_pago_a_maior,
42
+ 23 => :estorno_parcial,
43
+ 24 => :estorno_nao_autorizado,
44
+ 30 => :operacao_em_andamento,
45
+ 31 => :transacao_ja_efetuada,
46
+ 40 => :aguardando_cancelamento,
47
+ }
48
+
49
+ # Retornar array com os possíveis Status
50
+ def self.validos
51
+ STATUS.map{ |key, value| key }
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,99 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class Telefone
4
+
5
+ # Opções de Tipo de Telefone
6
+ TIPOS_DE_TELEFONE = {
7
+ :outros => 1,
8
+ :residencial => 2,
9
+ :comercial => 3,
10
+ :recados => 4,
11
+ :cobranca => 5,
12
+ :temporario => 6,
13
+ }
14
+
15
+ # Ver tabela “Tipos de Telefone”
16
+ # Simbolo - Valores pré-definidos [:outros, :residencial, :comercial, :recados, :cobranca, :temporario]
17
+ attr_accessor :codigo_tipo_telefone
18
+
19
+ # Telefone sem espaços ou traços
20
+ # Alfa Numérico - Até 10 caracteres
21
+ attr_accessor :telefone
22
+
23
+ # DDD do telefone
24
+ # Alfa Numérico - Até 3 caracteres
25
+ attr_accessor :ddd
26
+
27
+ # DDI do telefone
28
+ # Alfa Numérico - Até 3 caracteres
29
+ attr_accessor :ddi
30
+
31
+ # Validações do Rails 3
32
+ include ActiveModel::Validations
33
+
34
+ # Retornar array com os possíveis tipos de telefone
35
+ def self.validos
36
+ TIPOS_DE_TELEFONE.map{ |key, value| key }
37
+ end
38
+
39
+ # Validações
40
+ validates :codigo_tipo_telefone, inclusion: { in: SuperpayApi::Telefone.validos }, allow_nil: true
41
+ validates :telefone, length: { maximum: 10 }
42
+ validates :ddd, :ddi, length: { maximum: 3 }
43
+
44
+ # Nova instancia da classe Telefone
45
+ # @param [Hash] campos
46
+ def initialize(campos = {})
47
+ campos.each do |campo, valor|
48
+ if SuperpayApi::Telefone.public_instance_methods.include? "#{campo}=".to_sym
49
+ send "#{campo}=", valor
50
+ end
51
+ end
52
+ end
53
+
54
+ # Retornar o número do tipo de telefone
55
+ def codigo_tipo_telefone_to_request
56
+ TIPOS_DE_TELEFONE[self.codigo_tipo_telefone]
57
+ end
58
+
59
+ # Montar o Hash de tefone conforme o tipo dele no padrão utilizado pelo SuperPay
60
+ # tipo: [:comprador, :adicional_comprador, :entrega, :adicional_entrega]
61
+ def to_request tipo
62
+ telefone = {}
63
+ case tipo.to_sym
64
+ when :comprador then
65
+ telefone = {
66
+ codigo_tipo_telefone_comprador: self.codigo_tipo_telefone_to_request,
67
+ telefone_comprador: self.telefone,
68
+ ddd_comprador: self.ddd,
69
+ ddi_comprador: self.ddi,
70
+ }
71
+ when :adicional_comprador then
72
+ telefone = {
73
+ codigo_tipo_telefone_adicional_comprador: self.codigo_tipo_telefone_to_request,
74
+ telefone_adicional_comprador: self.telefone,
75
+ ddd_adicional_comprador: self.ddd,
76
+ ddi_adicional_comprador: self.ddi,
77
+ }
78
+ when :entrega then
79
+ telefone = {
80
+ codigo_tipo_telefone_entrega: self.codigo_tipo_telefone_to_request,
81
+ telefone_entrega: self.telefone,
82
+ ddd_entrega: self.ddd,
83
+ ddi_entrega: self.ddi,
84
+ }
85
+ when :adicional_entrega then
86
+ telefone = {
87
+ codigo_tipo_telefone_adicional_entrega: self.codigo_tipo_telefone_to_request,
88
+ telefone_adicional_entrega: self.telefone,
89
+ ddd_adicional_entrega: self.ddd,
90
+ ddi_adicional_entrega: self.ddi,
91
+ }
92
+ else
93
+ raise 'Tipo inválido.'
94
+ end
95
+ return telefone
96
+ end
97
+
98
+ end
99
+ end
@@ -0,0 +1,206 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ class Transacao
4
+
5
+ # Código que identifica a transação dentro do SuperPay
6
+ # Numérico - Até 8 dígitos
7
+ attr_accessor :numero_transacao
8
+
9
+ # Código da forma de pagamento. Ver tabela “Forma de Pagamento”
10
+ # Simbolo - Valores pré-definidos - Verifique classe SuperpayApi::FormaDePagamento
11
+ attr_accessor :codigo_forma_pagamento
12
+
13
+ # Valor da transação
14
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos.
15
+ # Numérico - Até 10 dígitos
16
+ attr_accessor :valor
17
+
18
+ # Valor do desconto da transação
19
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos.
20
+ # Numérico - Até 10 dígitos
21
+ attr_accessor :valor_desconto
22
+
23
+ # Valor da taxa de embarque
24
+ # Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos.
25
+ # Numérico - Até 10 dígitos
26
+ attr_accessor :taxa_embarque
27
+
28
+ # Quantidade de parcelas da transação. Verificar se forma de pagamento suporta parcelamento
29
+ # Numérico - Até 2 dígitos
30
+ attr_accessor :parcelas
31
+
32
+ # Nome do titular do cartão de crédito (Exatamente como escrito no cartão)
33
+ # Alfa Numérico - Até 16 caracteres
34
+ attr_accessor :nome_titular_cartao_credito
35
+
36
+ # Numero do cartão de crédito, sem espaços ou traços
37
+ # Numérico - Até 22 caracteres
38
+ attr_accessor :numero_cartao_credito
39
+
40
+ # Código de segurança do cartão (campo não é armazenado pelo SuperPay)
41
+ # Numérico - Até 4 caracteres
42
+ attr_accessor :codigo_seguranca
43
+
44
+ # Data de validade do cartão.
45
+ # Alfa Numérico - Até 7 caracteres - Formato mm/yyyy
46
+ attr_accessor :data_validade_cartao
47
+
48
+ # Data de validade do boleto.
49
+ # Alfa Numérico - Até 10 caracteres - Formato dd/mm/yyyy
50
+ attr_accessor :vencimento_boleto
51
+
52
+ # Para o modelo de pagamento redirect, O SuperPay redirecionará para essa URL em caso de transação *aprovada
53
+ # Alfa Numérico - Até 250 caracteres
54
+ attr_accessor :url_redirecionamento_pago
55
+
56
+ # Para o modelo de pagamento redirect, O SuperPay redirecionará para essa URL em caso de transação *reprovada
57
+ # Alfa Numérico - Até 250 caracteres
58
+ attr_accessor :url_redirecionamento_nao_pago
59
+
60
+ # Número do IP do usuário final/cliente.
61
+ # Alfa Numérico - Até 15 caracteres Formato xxx.xxx.xxx.xxx
62
+ attr_accessor :ip
63
+
64
+ # Campo Livre 1
65
+ # Alfa Numérico - Até 16 caracteres
66
+ attr_accessor :campo_livre1
67
+
68
+ # Campo Livre 2
69
+ # Alfa Numérico - Até 16 caracteres
70
+ attr_accessor :campo_livre2
71
+
72
+ # Campo Livre 3
73
+ # Alfa Numérico - Até 16 caracteres
74
+ attr_accessor :campo_livre3
75
+
76
+ # Campo Livre 4
77
+ # Alfa Numérico - Até 16 caracteres
78
+ attr_accessor :campo_livre4
79
+
80
+ # Campo Livre 5
81
+ # Alfa Numérico - Até 16 caracteres
82
+ attr_accessor :campo_livre5
83
+
84
+ # Informações para cobrança e entrega. Informações importantes para análise de fraude
85
+ # SuperpayApi::DadosUsuario
86
+ attr_accessor :dados_usuario_transacao
87
+
88
+ # Lista com Itens que estão sendo comprados. Informações importantes para análise de fraude e intermediários financeiros
89
+ # SuperpayApi::ItemPedido
90
+ attr_accessor :itens_do_pedido
91
+
92
+ # Validações do Rails 3
93
+ include ActiveModel::Validations
94
+
95
+ # Validações
96
+ validates :numero_transacao, :codigo_forma_pagamento, :valor, :valor_desconto, :taxa_embarque, :parcelas, :numero_cartao_credito,
97
+ :codigo_seguranca, numericality: true
98
+ validates :codigo_forma_pagamento, inclusion: { in: SuperpayApi::FormaDePagamento.validos }
99
+ validates :parcelas, length: { maximum: 2 }
100
+ validates :codigo_seguranca, length: { maximum: 4 }
101
+ validates :data_validade_cartao, length: { maximum: 7 }
102
+ validates :numero_transacao, length: { maximum: 8 }
103
+ validates :valor, :valor_desconto, :taxa_embarque, :vencimento_boleto, length: { maximum: 10 }
104
+ validates :ip, length: { maximum: 15 }
105
+ validates :nome_titular_cartao_credito, :campo_livre1, :campo_livre2, :campo_livre3, :campo_livre4, :campo_livre5, length: { maximum: 16 }
106
+ validates :numero_cartao_credito, length: { maximum: 22 }
107
+ validates :url_redirecionamento_pago, :url_redirecionamento_nao_pago, length: { maximum: 250 }
108
+
109
+ validates_each [:dados_usuario_transacao], allow_nil: true do |record, attr, value|
110
+ if value.is_a? SuperpayApi::DadosUsuario
111
+ if value.invalid?
112
+ value.errors.full_messages.each { |msg| record.errors.add(attr, msg) }
113
+ end
114
+ else
115
+ record.errors.add(attr, 'deve ser um objeto SuperpayApi::DadosUsuario.')
116
+ end
117
+ end
118
+
119
+ validates_each [:itens_do_pedido], allow_nil: true do |record, attr, value|
120
+ if value.is_a? Array
121
+ value.each do |item_do_pedido|
122
+ if item_do_pedido.is_a? SuperpayApi::ItemPedido
123
+ if item_do_pedido.invalid?
124
+ item_do_pedido.errors.full_messages.each { |msg| record.errors.add(attr, msg) }
125
+ end
126
+ else
127
+ record.errors.add(attr, 'deve ser um objeto SuperpayApi::ItemPedido.')
128
+ end
129
+ end
130
+ else
131
+ record.errors.add(attr, 'deve ser uma coleção (Array).')
132
+ end
133
+ end
134
+
135
+ # Nova instancia da classe Transacao
136
+ # @param [Hash] campos
137
+ def initialize(campos = {})
138
+ campos.each do |campo, valor|
139
+ if SuperpayApi::Transacao.public_instance_methods.include? "#{campo}=".to_sym
140
+ send "#{campo}=", valor
141
+ end
142
+ end
143
+ end
144
+
145
+ # Função para consultar transações
146
+ def consulta_transacao numero_transacao
147
+ resposta = web_service.consulta_transacao_completa numero_transacao
148
+ resposta
149
+ end
150
+
151
+ # Função para consultar transações
152
+ def self.consulta_transacao numero_transacao
153
+ self.new.consulta_transacao numero_transacao
154
+ end
155
+
156
+ # Função para realizar o pagamento de transações
157
+ def enviar_pagamento
158
+ resposta = web_service.pagamento_transacao_completa self
159
+ resposta
160
+ end
161
+
162
+ # Montar o Hash da transação no padrão utilizado pelo SuperPay
163
+ def to_request
164
+ transacao = {
165
+ numero_transacao: self.numero_transacao,
166
+ "IP" => self.ip,
167
+ codigo_forma_pagamento: self.codigo_forma_pagamento,
168
+ valor: self.valor,
169
+ valor_desconto: self.valor_desconto,
170
+ taxa_embarque: self.taxa_embarque,
171
+ parcelas: self.parcelas,
172
+ nome_titular_cartao_credito: self.nome_titular_cartao_credito,
173
+ numero_cartao_credito: self.numero_cartao_credito,
174
+ codigo_seguranca: self.codigo_seguranca,
175
+ data_validade_cartao: self.data_validade_cartao,
176
+ vencimento_boleto: self.vencimento_boleto,
177
+ url_redirecionamento_pago: self.url_redirecionamento_pago,
178
+ url_redirecionamento_nao_pago: self.url_redirecionamento_nao_pago,
179
+ campo_livre1: self.campo_livre1,
180
+ campo_livre2: self.campo_livre2,
181
+ campo_livre3: self.campo_livre3,
182
+ campo_livre4: self.campo_livre4,
183
+ campo_livre5: self.campo_livre5,
184
+ }
185
+
186
+ # Adicionar os parâmetros de configurações
187
+ transacao.merge! SuperpayApi.configuracoes_to_request
188
+
189
+ # Adicionar dados do usuário
190
+ transacao[:dados_usuario_transacao] = self.dados_usuario_transacao.to_request unless self.dados_usuario_transacao.blank?
191
+
192
+ # Adicionar itens do pedido
193
+ transacao[:itens_do_pedido] = self.itens_do_pedido.collect{ |i| i.to_request } unless self.itens_do_pedido.blank?
194
+
195
+ return transacao
196
+ end
197
+
198
+ private
199
+
200
+ # Acesso ao web_service
201
+ def web_service
202
+ @web_service ||= SuperpayApi::WebService.new
203
+ end
204
+
205
+ end
206
+ end
@@ -0,0 +1,9 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module SuperpayApi
3
+ module Version
4
+ MAJOR = 0
5
+ MINOR = 0
6
+ PATCH = 1
7
+ STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
8
+ end
9
+ end
@@ -0,0 +1,74 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'savon'
3
+
4
+ module SuperpayApi
5
+ class WebService
6
+
7
+ # Atributo para o cliente SOAP
8
+ attr_reader :savon_client
9
+
10
+ # Nova instancia da classe WebService
11
+ # Será considerado o ambiente informado nas configurações
12
+ def initialize
13
+ @savon_client = Savon.client(
14
+ wsdl: ::SuperpayApi.url,
15
+ env_namespace: :soapenv,
16
+ convert_request_keys_to: :lower_camelcase,
17
+ namespace_identifier: :pag,
18
+ namespaces: {
19
+ "xmlns:soapenv" => "http://schemas.xmlsoap.org/soap/envelope/",
20
+ "xmlns:pag" => "http://pagamentos.webservices.superpay.ernet.com.br/",
21
+ }
22
+ )
23
+ end
24
+
25
+ # Função que faz a requisição para consulta_transacao_completa
26
+ def consulta_transacao_completa(numero_transacao)
27
+ # Monta os parâmetros
28
+ params = helper.build_request_consulta_transacao_completa(numero_transacao)
29
+
30
+ # Faz a requisição para o wsdl
31
+ begin
32
+ retorno = @savon_client.call(:consulta_transacao_completa, message: params)
33
+ rescue Savon::SOAPFault => error
34
+ return helper.build_response_error(error)
35
+ end
36
+
37
+ # Verifica se a retorno veio correta ou se deu problema
38
+ if retorno.blank?
39
+ return {error: true}
40
+ else
41
+ return helper.build_response_retorno(retorno)
42
+ end
43
+ end
44
+
45
+ # Função que faz a requisição para pagamento_transacao_completa
46
+ def pagamento_transacao_completa(transacao)
47
+ # Monta os parâmetros
48
+ params = helper.build_request_pagamento_transacao_completa(transacao)
49
+
50
+ # Faz a requisição para o wsdl
51
+ begin
52
+ retorno = @savon_client.call(:pagamento_transacao_completa, message: params)
53
+ rescue Savon::SOAPFault => error
54
+ return helper.build_response_error(error)
55
+ # return helper.build_response_error({error: error.to_hash[:fault][:faultstring]})
56
+ end
57
+
58
+ # Verifica se a retorno veio correta ou se deu problema
59
+ if retorno.blank?
60
+ return {error: true}
61
+ else
62
+ return helper.build_response_retorno(retorno)
63
+ end
64
+ end
65
+
66
+ private
67
+
68
+ # Acesso ao helper
69
+ def helper
70
+ @helper ||= SuperpayApi::Helper.new
71
+ end
72
+
73
+ end
74
+ end
@@ -0,0 +1,22 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'rubygems'
3
+ require 'active_model'
4
+
5
+ require "superpay_api/version"
6
+ require "superpay_api/configuracao"
7
+ require "superpay_api/helper"
8
+ require "superpay_api/web_service"
9
+ require "superpay_api/forma_de_pagamento"
10
+ require "superpay_api/status"
11
+
12
+ require "superpay_api/endereco"
13
+ require "superpay_api/telefone"
14
+ require "superpay_api/dados_usuario"
15
+ require "superpay_api/item_pedido"
16
+ require "superpay_api/transacao"
17
+ require "superpay_api/retorno"
18
+
19
+ # -*- encoding : utf-8 -*-
20
+ module SuperpayApi
21
+ extend SuperpayApi::Configuracao
22
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: superpay_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - QW3 Software & Marketing
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-07-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activemodel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: savon
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '2.11'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '2.11'
41
+ description: Gem para utilização do SuperPay API disponibilizado pela empresa SuperPay
42
+ para integrar sua plataforma de forma segura e eficaz com as principais formas de
43
+ pagamento disponíveis no mercado.
44
+ email:
45
+ - contato@qw3.com.br
46
+ executables: []
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - lib/superpay_api.rb
51
+ - lib/superpay_api/configuracao.rb
52
+ - lib/superpay_api/dados_usuario.rb
53
+ - lib/superpay_api/endereco.rb
54
+ - lib/superpay_api/forma_de_pagamento.rb
55
+ - lib/superpay_api/helper.rb
56
+ - lib/superpay_api/item_pedido.rb
57
+ - lib/superpay_api/retorno.rb
58
+ - lib/superpay_api/status.rb
59
+ - lib/superpay_api/telefone.rb
60
+ - lib/superpay_api/transacao.rb
61
+ - lib/superpay_api/version.rb
62
+ - lib/superpay_api/web_service.rb
63
+ homepage: https://github.com/qw3/superpay_api
64
+ licenses:
65
+ - MIT
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '1.9'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 2.4.1
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: SuperPay API - Gateway de pagamento
87
+ test_files: []
88
+ has_rdoc: