superpay_api 0.0.1

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