superpay 1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0f51d374e6803dc17b3da70faf9fdf566a62a271
4
+ data.tar.gz: b70ef241c6110ac0e1ca6382aaa87300f776fd3b
5
+ SHA512:
6
+ metadata.gz: 424fb10aa4c2d47d32560fe919dae650bc1b6b559801cffda07dbd331861066fa7553c3b3655e83ac4b1679dd06ccb2078aab3e1c78dfb52ef5dc58400d7f732
7
+ data.tar.gz: e771f93645c6578037d93169ea54be314ed043f817d589c1b0041d07fc3bcf7e1b780b4b96dcdc218735dadcc34676ac303adeca3e92f9d5a164f094cb0cdd73
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in superpay.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Marcelo Theodoro
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,29 @@
1
+ # Superpay
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'superpay'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install superpay
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
@@ -0,0 +1,9 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require 'rake/testtask'
4
+
5
+ Rake::TestTask.new do |t|
6
+ t.libs.push "lib"
7
+ t.test_files = FileList['test/*_test.rb']
8
+ t.verbose = true
9
+ end
@@ -0,0 +1,31 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require "superpay/version"
3
+ require 'savon'
4
+
5
+ module Superpay
6
+
7
+ autoload :Conector, 'superpay/conector'
8
+ autoload :Configuracao, 'superpay/configuracao'
9
+ autoload :Helper, 'superpay/helper'
10
+ autoload :Transacao, 'superpay/transacao'
11
+
12
+ #
13
+ # Configura a conexão com o gateway.
14
+ # Utlização:
15
+ #
16
+ # Superpay.config do |config|
17
+ # config.ambiente = :teste
18
+ # config.estabelecimento = 1111111
19
+ # config.usuario = 'ERNET'
20
+ # config.senha = 'ERNET'
21
+ # end
22
+ def self.config
23
+ yield(Configuracao.instance) if block_given?
24
+ return Configuracao.instance
25
+ end
26
+
27
+ def self.conector
28
+ Conector.instance
29
+ end
30
+
31
+ end
@@ -0,0 +1,32 @@
1
+ module Superpay
2
+ class Conector
3
+
4
+ attr_accessor :savon_client
5
+
6
+ def initialize
7
+ self.reload
8
+ end
9
+
10
+ def reload
11
+ @savon_client = Savon.client do
12
+ wsdl ::Superpay.config.url
13
+ convert_request_keys_to :lower_camelcase
14
+ end
15
+ end
16
+
17
+ def self.instance
18
+ @__instance__ ||= new
19
+ end
20
+
21
+ def call(metodo, transacao)
22
+ parametros = {
23
+ usuario: Configuracao.instance.usuario,
24
+ senha: Configuracao.instance.senha
25
+ }
26
+ @savon_client.call(metodo.to_sym) do
27
+ message parametros.merge(transacao)
28
+ end
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Superpay
3
+
4
+ class Configuracao
5
+
6
+ attr_accessor :ambiente, :estabelecimento, :usuario, :senha
7
+
8
+ def self.instance
9
+ @__instance__ ||= new
10
+ end
11
+
12
+ def url
13
+ if ambiente_producao?
14
+ # TO-DO: Falta configurar a URL real
15
+ return 'http://homologacao2.superpay.com.br/checkout/servicosPagamentoCompletoWS.Services?wsdl'
16
+ else
17
+ return 'http://homologacao2.superpay.com.br/checkout/servicosPagamentoCompletoWS.Services?wsdl'
18
+ end
19
+ end
20
+
21
+ def ambiente_teste?
22
+ !ambiente_producao?
23
+ end
24
+
25
+ def ambiente_producao?
26
+ return (ambiente.to_sym == :producao) if !ambiente.blank?
27
+ return true
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,32 @@
1
+ module Superpay
2
+
3
+ module Helper
4
+
5
+ #
6
+ # Transforma um valor, seja Fixnum, String ou Float, para o formato do gateway.
7
+ # R$ 1,00 -> 100
8
+ # 1 -> 100
9
+ # 1.0 -> 100
10
+ # -1 -> 100
11
+ def self.to_superpay_number(valor)
12
+ ('%.2f' % valor.to_f.abs).gsub('.', '').gsub(',', '').to_i
13
+ end
14
+
15
+ #
16
+ # Transforma um número de retorno do gateway em um float.
17
+ # 100 -> 1.0
18
+ # 10 -> 0.1
19
+ # 500 -> 5.0
20
+ # 320 -> 3.2
21
+ # 241 -> 2.41
22
+ def self.superpay_number_to_decimal(number)
23
+ number.to_i.abs / 100.0
24
+ end
25
+
26
+ def self.cep_to_superpay(cep)
27
+ cep.gsub('.', '').gsub('-', '')
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,129 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'brdata'
3
+
4
+ module Superpay
5
+ class Transacao
6
+
7
+ # CONSTANTES
8
+ IDIOMAS = {portugues: 1, ingles: 2, espanhol: 3}
9
+ STATUS = {
10
+ 1 => :autorizado_confirmado,
11
+ 2 => :autorizado,
12
+ 3 => :nao_autorizado,
13
+ 5 => :em_andamento,
14
+ 6 => :boleto_em_compensacao,
15
+ 8 => :aguardando_pagamento,
16
+ 9 => :falha_na_operadora,
17
+ 13 => :cancelada,
18
+ 14 => :estornada,
19
+ 15 => :em_analise_risco,
20
+ 17 => :recusado_analise_risco,
21
+ 18 => :falha_envio_analise_risco,
22
+ 21 => :boleto_pago_menor,
23
+ 22 => :boleto_pago_maior,
24
+ 30 => :em_curso,
25
+ 31 => :ja_efetuada
26
+ }
27
+
28
+ #
29
+ # Faz o pagamento da transação, a partir dos dados do gateway.
30
+ # Se a transação já foi feita, seu status de retorno será 31: ja_efetuada.
31
+ # Caso deseje saber qual o real status da transação, faça uma consulta.
32
+ def self.pagar(dados)
33
+ # Valida os dados passados
34
+ raise 'Campo obrigatório: numero_transacao' if dados[:numero_transacao].blank?
35
+ raise 'Campo obrigatório: codigo_forma_pagamento' if dados[:codigo_forma_pagamento].blank?
36
+ raise 'Campo obrigatório: valor' if dados[:valor].blank?
37
+ raise 'Campo obrigatório: nome_titular_cartao_credito' if dados[:nome_titular_cartao_credito].blank?
38
+ raise 'Campo obrigatório: numero_cartao_credito' if dados[:numero_cartao_credito].blank?
39
+ raise 'Campo obrigatório: codigo_seguranca' if dados[:codigo_seguranca].blank?
40
+ raise 'Campo obrigatório: data_validade_cartao' if dados[:data_validade_cartao].blank?
41
+ raise 'Campo obrigatório: dados_usuario_transacao' if dados[:dados_usuario_transacao].blank?
42
+ raise 'Campo obrigatório: itens_do_pedido' if dados[:itens_do_pedido].blank?
43
+
44
+ # Sobrecarga com dados default
45
+ dados[:codigo_estabelecimento] = ::Superpay.config.estabelecimento
46
+
47
+ # Tratamento dos valores de envio
48
+ dados = Transacao.tratar_envio(dados)
49
+
50
+ retorno = Superpay.conector.call(:pagamento_transacao_completa, {transacao: dados})
51
+ resposta = retorno.to_array(:pagamento_transacao_completa_response, :return).first
52
+
53
+ # Verifica se a resposta veio correta ou se deu problema
54
+ return {erros: retorno} if !resposta
55
+ # Se o estabelecimento retornado for diferente da configuração, deu coisa errada
56
+ if resposta[:codigo_estabelecimento] != ::Superpay.config.estabelecimento.to_s
57
+ raise "Código do estabelecimento não é o da configuração: #{resposta[:codigo_estabelecimento]}"
58
+ end
59
+
60
+ # Sobrecarga com dados tratados e retorna
61
+ return Transacao.tratar_retorno(resposta)
62
+ end
63
+
64
+ #
65
+ # Consulta uma transação de acordo com seu número (código).
66
+ def self.consultar(numero_transacao)
67
+ dados = {
68
+ codigo_estabelecimento: ::Superpay.config.estabelecimento,
69
+ numero_transacao: numero_transacao
70
+ }
71
+ retorno = Superpay.conector.call(:consulta_transacao_especifica, {consulta_transacao_w_s: dados})
72
+ resposta = retorno.to_array(:consulta_transacao_especifica_response, :return).first
73
+ # Verifica se a resposta veio correta ou se deu problema
74
+ return {erros: retorno} if !resposta
75
+ # Se o estabelecimento retornado for diferente da configuração, deu coisa errada
76
+ if resposta[:codigo_estabelecimento] != ::Superpay.config.estabelecimento.to_s
77
+ raise "Código do estabelecimento não é o da configuração: #{resposta[:codigo_estabelecimento]}"
78
+ end
79
+
80
+ # Sobrecarga com dados tratados e retorna
81
+ return Transacao.tratar_retorno(resposta)
82
+ end
83
+
84
+ def self.cancelar(dados)
85
+ raise 'Not implemented yet'
86
+ end
87
+
88
+ def self.pagar_com_varios_cartoes(dados)
89
+ raise 'Not implemented yet'
90
+ end
91
+
92
+ #
93
+ # Trata o retorno das transações: converte valores e datas para objetos.
94
+ def self.tratar_retorno(transacao)
95
+ transacao[:status] = STATUS[transacao[:status_transacao].to_i] unless transacao[:status_transacao].blank?
96
+ transacao[:valor] = Helper.superpay_number_to_decimal(transacao[:valor]) unless transacao[:valor].blank?
97
+ transacao[:valor_desconto] = Helper.superpay_number_to_decimal(transacao[:valor_desconto]) unless transacao[:valor_desconto].blank?
98
+ transacao[:taxa_embarque] = Helper.superpay_number_to_decimal(transacao[:taxa_embarque]) unless transacao[:taxa_embarque].blank?
99
+ transacao[:data_aprovacao_operadora] = transacao[:data_aprovacao_operadora].to_date unless transacao[:data_aprovacao_operadora].blank?
100
+ return transacao
101
+ end
102
+
103
+ #
104
+ # Trata os dados de envio da transação.
105
+ # Transforma valores e datas
106
+ def self.tratar_envio(transacao)
107
+ # valores da transação
108
+ transacao[:valor] = Helper.to_superpay_number(transacao[:valor]) unless transacao[:valor].blank?
109
+ transacao[:valor_desconto] = Helper.to_superpay_number(transacao[:valor_desconto]) unless transacao[:valor_desconto].blank?
110
+ transacao[:taxa_embarque] = Helper.to_superpay_number(transacao[:taxa_embarque]) unless transacao[:taxa_embarque].blank?
111
+
112
+ # valor dos itens do pedido
113
+ if transacao[:itens_do_pedido].is_a?(Hash)
114
+ transacao[:itens_do_pedido] = [transacao[:itens_do_pedido]]
115
+ end
116
+ transacao[:itens_do_pedido].each do |item|
117
+ item[:valor_unitario_produto] = Helper.to_superpay_number(item[:valor_unitario_produto]) unless item[:valor_unitario_produto].blank?
118
+ end
119
+
120
+ # dados do usuário
121
+ transacao[:dados_usuario_transacao][:cep_endereco_comprador] = Helper.cep_to_superpay(transacao[:dados_usuario_transacao][:cep_endereco_comprador]) unless transacao[:dados_usuario_transacao][:cep_endereco_comprador].blank?
122
+ transacao[:dados_usuario_transacao][:cep_endereco_entrega] = Helper.cep_to_superpay(transacao[:dados_usuario_transacao][:cep_endereco_entrega]) unless transacao[:dados_usuario_transacao][:cep_endereco_entrega].blank?
123
+ transacao[:dados_usuario_transacao][:data_nascimento_comprador] = transacao[:dados_usuario_transacao][:data_nascimento_comprador].to_date.strftime('%d/%m/%Y') unless transacao[:dados_usuario_transacao][:data_nascimento_comprador].blank?
124
+
125
+ return transacao
126
+ end
127
+
128
+ end
129
+ end
@@ -0,0 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Superpay
3
+ VERSION = "1.0.1"
4
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'superpay/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "superpay"
8
+ spec.version = Superpay::VERSION
9
+ spec.authors = ["QW3 Software & Marketing"]
10
+ spec.email = ["contato@qw3.com.br"]
11
+ spec.description = %q{Gem de integração com o gateway de pagamentos Superpay}
12
+ spec.summary = %q{Projeto extraído da construção da plataforma de e-commerce Profit, da QW3.}
13
+ spec.homepage = "https://github.com/qw3/superpay"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency 'brdinheiro'
22
+ spec.add_dependency 'brdata'
23
+ spec.add_dependency 'savon', '2.2'
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.3"
26
+ spec.add_development_dependency "rake"
27
+ spec.add_development_dependency 'minitest', '>= 5.0'
28
+ end
@@ -0,0 +1,138 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'minitest/autorun'
3
+ require 'superpay'
4
+
5
+ describe Superpay::Configuracao do
6
+
7
+ before do
8
+ @client = Savon.client do
9
+ wsdl 'http://homologacao2.superpay.com.br/checkout/servicosPagamentoCompletoWS.Services?wsdl'
10
+ convert_request_keys_to :lower_camelcase
11
+ end
12
+ end
13
+
14
+ describe "teste de requisicao" do
15
+ it "deveria reconhecer as operações" do
16
+ @client.operations.must_equal [:consulta_transacao_especifica, :pagamento_transacao_completa, :operacao_transacao, :visualizar_dados_retorno, :pagamento_transacao_completa_mais_cartoes_credito, :cancelar_transacao_completa, :capturar_transacao_completa, :refazer_transacao, :altera_numero_pedido, :salva_hash_pagamento, :bloquear_transacao, :consulta_bloqueio_transacao, :atualiza_campos_livres]
17
+ end
18
+ end
19
+
20
+ describe "pagamento de transação" do
21
+ it "deveria criar uma requisição" do
22
+
23
+ # dados de homologação
24
+ usuario = 'ERNET'
25
+ senha = 'ERNET'
26
+
27
+ # Cliente
28
+ usuario_transacao = {
29
+ codigo_cliente: 1,
30
+ tipo_cliente: 1,
31
+ nome_comprador: 'Marcelo',
32
+ documento_comprador: '04795729921',
33
+ documento2_comprador: '97619077',
34
+ sexo_comprador: 'M',
35
+ data_nascimento_comprador: '14/03/1988',
36
+ telefone_comprador: '34166404',
37
+ ddd_comprador: '16',
38
+ ddi_comprador: '55',
39
+ codigo_tipo_telefone_comprador: 1,
40
+ telefone_adicional_comprador: '34166405',
41
+ ddd_adicional_comprador: '16',
42
+ ddi_adicional_comprador: '55',
43
+ codigo_tipo_telefone_adicional_comprador: 1,
44
+ email_comprador: 'marcelo@qw3.com.br',
45
+ endereco_comprador: 'Giácomo Casale',
46
+ numero_endereco_comprador: '147',
47
+ bairro_endereco_comprador: 'Jardim Alvorada',
48
+ complemento_endereco_comprador: '',
49
+ cidade_endereco_comprador: 'São Carlos',
50
+ estado_endereco_comprador: 'SP',
51
+ cep_endereco_comprador: '13562350',
52
+ endereco_entrega: 'Giácomo Casale',
53
+ numero_endereco_entrega: '147',
54
+ bairro_endereco_entrega: 'Jardim Alvorada',
55
+ complemento_endereco_entrega: '',
56
+ cidade_endereco_entrega: 'São Carlos',
57
+ estado_endereco_entrega: 'SP',
58
+ cep_endereco_entrega: '13562350',
59
+ telefone_entrega: '34166404',
60
+ ddd_entrega: '16',
61
+ ddi_entrega: '55',
62
+ codigo_tipo_telefone_entrega: 1,
63
+ telefone_adicional_entrega: '34166404',
64
+ ddd_adicional_entrega: '16',
65
+ ddi_adicional_entrega: '55',
66
+ codigo_tipo_telefone_adicional_entrega: 1,
67
+ }
68
+
69
+ # Pedido
70
+ itens_do_pedido = [
71
+ {
72
+ codigo_produto: 1,
73
+ codigo_categoria: 1,
74
+ nome_produto: 'Produto 1',
75
+ nome_categoria: 'Categoria 1',
76
+ quantidade_produto: 1,
77
+ valor_unitario_produto: 50
78
+ },
79
+ {
80
+ codigo_produto: 1,
81
+ codigo_categoria: 1,
82
+ nome_produto: 'Produto 1',
83
+ nome_categoria: 'Categoria 1',
84
+ quantidade_produto: 1,
85
+ valor_unitario_produto: 50
86
+ }
87
+ ]
88
+
89
+ # Dados da venda
90
+ transacao_completa = {
91
+ numero_transacao: 104,
92
+ codigo_estabelecimento: 1369338339932,
93
+ codigo_forma_pagamento: 120,
94
+ valor: 100,
95
+ valor_desconto: 0,
96
+ taxa_embarque: 0,
97
+ parcelas: 1,
98
+ nome_titular_cartao_credito: 'Marcelo',
99
+ numero_cartao_credito: '4444333322221111',
100
+ codigo_seguranca: '123',
101
+ data_validade_cartao: '12/2016',
102
+ url_campainha: 'teste',
103
+ ip: '187.39.185.39',
104
+ idioma: 1,
105
+ origem_transacao: 1,
106
+ campo_livre1: '',
107
+ campo_livre2: '',
108
+ campo_livre3: '',
109
+ campo_livre4: '',
110
+ campo_livre5: '',
111
+ campo_livre6: '',
112
+ dados_usuario_transacao: usuario_transacao,
113
+ itens_do_pedido: itens_do_pedido
114
+ }
115
+
116
+ # chamada de resposta
117
+ resposta = @client.call(:pagamento_transacao_completa) do
118
+ message transacao: transacao_completa, usuario: usuario, senha: senha
119
+ end
120
+
121
+ data = resposta.to_array(:pagamento_transacao_completa_response, :return).first
122
+ data[:autorizacao].must_equal '0'
123
+ data[:codigo_estabelecimento].must_equal '1369338339932'
124
+ data[:codigo_forma_pagamento].must_equal '120'
125
+ data[:codigo_transacao_operadora].must_equal '0'
126
+ # data[:data_aprovacao_operadora].must_equal '21/06/2013'
127
+ # data[:mensagem_venda].must_equal 'Autorizada'
128
+ data[:numero_transacao].must_equal '104'
129
+ data[:parcelas].must_equal '1'
130
+ data[:status_transacao].must_equal '31'
131
+ data[:taxa_embarque].must_equal '0'
132
+ data[:valor].must_equal '100'
133
+ data[:valor_desconto].must_equal '0'
134
+
135
+ end
136
+ end
137
+
138
+ end
@@ -0,0 +1,51 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'minitest/autorun'
3
+ require 'superpay'
4
+
5
+ describe Superpay::Configuracao do
6
+
7
+ before do
8
+
9
+ Superpay.config do |config|
10
+ config.ambiente = :teste
11
+ config.estabelecimento = 1111111
12
+ config.usuario = 'ERNET'
13
+ config.senha = 'ERNET'
14
+ end
15
+
16
+ end
17
+
18
+ it "deveria configurar corretamente" do
19
+ Superpay.config.ambiente_teste?.must_equal true
20
+ Superpay.config.ambiente_producao?.must_equal false
21
+ Superpay.config.estabelecimento.must_equal 1111111
22
+ Superpay.config.usuario.must_equal 'ERNET'
23
+ Superpay.config.senha.must_equal 'ERNET'
24
+ end
25
+
26
+ it "deveria manter os dados configurados" do
27
+ Superpay.config.ambiente_teste?.must_equal true
28
+ Superpay.config.ambiente_producao?.must_equal false
29
+ Superpay.config.estabelecimento.must_equal 1111111
30
+ Superpay.config.usuario.must_equal 'ERNET'
31
+ Superpay.config.senha.must_equal 'ERNET'
32
+ end
33
+
34
+ it "deveria sobrecarregar os dados configurados" do
35
+
36
+ Superpay.config do |config|
37
+ config.ambiente = :producao
38
+ config.estabelecimento = 222222
39
+ config.usuario = 'qw3'
40
+ config.senha = 'qw31'
41
+ end
42
+
43
+ Superpay.config.ambiente_teste?.must_equal false
44
+ Superpay.config.ambiente_producao?.must_equal true
45
+ Superpay.config.estabelecimento.must_equal 222222
46
+ Superpay.config.usuario.must_equal 'qw3'
47
+ Superpay.config.senha.must_equal 'qw31'
48
+
49
+ end
50
+
51
+ end
@@ -0,0 +1,129 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'minitest/autorun'
3
+ require 'superpay'
4
+ require 'brdinheiro/dinheiro'
5
+
6
+ describe Superpay::Helper do
7
+
8
+ describe "validação" do
9
+
10
+ it "deveria retornar o valor inteiro correto" do
11
+ # Para R$ 1,00
12
+ Superpay::Helper.to_superpay_number(1).must_equal 100
13
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1)).must_equal 100
14
+ Superpay::Helper.to_superpay_number(1.0).must_equal 100
15
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1.0)).must_equal 100
16
+ Superpay::Helper.to_superpay_number('1').must_equal 100
17
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1')).must_equal 100
18
+ Superpay::Helper.to_superpay_number('1.0').must_equal 100
19
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1.0')).must_equal 100
20
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1,00')).must_equal 100
21
+
22
+ # Para 15
23
+ Superpay::Helper.to_superpay_number(15).must_equal 1500
24
+ Superpay::Helper.to_superpay_number(Dinheiro.new(15)).must_equal 1500
25
+ Superpay::Helper.to_superpay_number(15.0).must_equal 1500
26
+ Superpay::Helper.to_superpay_number(Dinheiro.new(15.0)).must_equal 1500
27
+ Superpay::Helper.to_superpay_number('15').must_equal 1500
28
+ Superpay::Helper.to_superpay_number(Dinheiro.new('15')).must_equal 1500
29
+ Superpay::Helper.to_superpay_number('15.0').must_equal 1500
30
+ Superpay::Helper.to_superpay_number(Dinheiro.new('15.0')).must_equal 1500
31
+ Superpay::Helper.to_superpay_number(Dinheiro.new('15,00')).must_equal 1500
32
+
33
+ # Para 167
34
+ Superpay::Helper.to_superpay_number(167).must_equal 16700
35
+ Superpay::Helper.to_superpay_number(Dinheiro.new(167)).must_equal 16700
36
+ Superpay::Helper.to_superpay_number(167.0).must_equal 16700
37
+ Superpay::Helper.to_superpay_number(Dinheiro.new(167.0)).must_equal 16700
38
+ Superpay::Helper.to_superpay_number('167').must_equal 16700
39
+ Superpay::Helper.to_superpay_number(Dinheiro.new('167')).must_equal 16700
40
+ Superpay::Helper.to_superpay_number('167.0').must_equal 16700
41
+ Superpay::Helper.to_superpay_number(Dinheiro.new('167.0')).must_equal 16700
42
+ Superpay::Helper.to_superpay_number(Dinheiro.new('167,00')).must_equal 16700
43
+
44
+ # Para 1234
45
+ Superpay::Helper.to_superpay_number(1234).must_equal 123400
46
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1234)).must_equal 123400
47
+ Superpay::Helper.to_superpay_number(1234.0).must_equal 123400
48
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1234.0)).must_equal 123400
49
+ Superpay::Helper.to_superpay_number('1234').must_equal 123400
50
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1234')).must_equal 123400
51
+ Superpay::Helper.to_superpay_number('1234.0').must_equal 123400
52
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1234.0')).must_equal 123400
53
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1234,00')).must_equal 123400
54
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1.234,00')).must_equal 123400
55
+ end
56
+
57
+ it "deveria retornar o valor flutuante inteiro" do
58
+ # Para R$ 1,30
59
+ Superpay::Helper.to_superpay_number(1.3).must_equal 130
60
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1.3)).must_equal 130
61
+ Superpay::Helper.to_superpay_number(1.3).must_equal 130
62
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1.3)).must_equal 130
63
+ Superpay::Helper.to_superpay_number('1.3').must_equal 130
64
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1.3')).must_equal 130
65
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1,30')).must_equal 130
66
+
67
+ # Para R$ 1,35
68
+ Superpay::Helper.to_superpay_number(1.35).must_equal 135
69
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1.35)).must_equal 135
70
+ Superpay::Helper.to_superpay_number(1.35).must_equal 135
71
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1.35)).must_equal 135
72
+ Superpay::Helper.to_superpay_number('1.35').must_equal 135
73
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1.35')).must_equal 135
74
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1,35')).must_equal 135
75
+
76
+ # Para R$ 12,35
77
+ Superpay::Helper.to_superpay_number(12.35).must_equal 1235
78
+ Superpay::Helper.to_superpay_number(Dinheiro.new(12.35)).must_equal 1235
79
+ Superpay::Helper.to_superpay_number(12.35).must_equal 1235
80
+ Superpay::Helper.to_superpay_number(Dinheiro.new(12.35)).must_equal 1235
81
+ Superpay::Helper.to_superpay_number('12.35').must_equal 1235
82
+ Superpay::Helper.to_superpay_number(Dinheiro.new('12.35')).must_equal 1235
83
+ Superpay::Helper.to_superpay_number(Dinheiro.new('12,35')).must_equal 1235
84
+
85
+ # Para R$ 1267,35
86
+ Superpay::Helper.to_superpay_number(1267.35).must_equal 126735
87
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1267.35)).must_equal 126735
88
+ Superpay::Helper.to_superpay_number(1267.35).must_equal 126735
89
+ Superpay::Helper.to_superpay_number(Dinheiro.new(1267.35)).must_equal 126735
90
+ Superpay::Helper.to_superpay_number('1267.35').must_equal 126735
91
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1267.35')).must_equal 126735
92
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1267,35')).must_equal 126735
93
+ Superpay::Helper.to_superpay_number(Dinheiro.new('1.267,35')).must_equal 126735
94
+ end
95
+
96
+ it "deveria voltar zero quando parametro for errado" do
97
+ Superpay::Helper.to_superpay_number('não número').must_equal 0
98
+ Superpay::Helper.to_superpay_number('bolagato69bola7').must_equal 0
99
+ Superpay::Helper.to_superpay_number('2bolagato69bola7').must_equal 200
100
+ Superpay::Helper.to_superpay_number('').must_equal 0
101
+ end
102
+
103
+ it "deveria converter de superpay para decimal comum" do
104
+ Superpay::Helper.superpay_number_to_decimal(1).must_equal 0.01
105
+ Superpay::Helper.superpay_number_to_decimal('1').must_equal 0.01
106
+ Superpay::Helper.superpay_number_to_decimal(50).must_equal 0.5
107
+ Superpay::Helper.superpay_number_to_decimal('50').must_equal 0.5
108
+ Superpay::Helper.superpay_number_to_decimal(100).must_equal 1
109
+ Superpay::Helper.superpay_number_to_decimal('100').must_equal 1
110
+ Superpay::Helper.superpay_number_to_decimal(321).must_equal 3.21
111
+ Superpay::Helper.superpay_number_to_decimal('321').must_equal 3.21
112
+ Superpay::Helper.superpay_number_to_decimal(32145).must_equal 321.45
113
+ Superpay::Helper.superpay_number_to_decimal('32145').must_equal 321.45
114
+ Superpay::Helper.superpay_number_to_decimal(532145).must_equal 5321.45
115
+ Superpay::Helper.superpay_number_to_decimal('532145').must_equal 5321.45
116
+ Superpay::Helper.superpay_number_to_decimal(1532145).must_equal 15321.45
117
+ Superpay::Helper.superpay_number_to_decimal('1532145').must_equal 15321.45
118
+ Superpay::Helper.superpay_number_to_decimal(99532145).must_equal 995321.45
119
+ Superpay::Helper.superpay_number_to_decimal('99532145').must_equal 995321.45
120
+ Superpay::Helper.superpay_number_to_decimal(10099532145).must_equal 100995321.45
121
+ Superpay::Helper.superpay_number_to_decimal('10099532145').must_equal 100995321.45
122
+ Superpay::Helper.superpay_number_to_decimal(100995321450).must_equal 1009953214.5
123
+ Superpay::Helper.superpay_number_to_decimal('100995321450').must_equal 1009953214.5
124
+
125
+ end
126
+
127
+ end
128
+
129
+ end
@@ -0,0 +1,234 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'minitest/autorun'
3
+ require 'superpay'
4
+
5
+ describe Superpay::Transacao do
6
+
7
+ before do
8
+ Superpay.config do |config|
9
+ config.ambiente = :teste
10
+ config.estabelecimento = 1369338339932
11
+ config.usuario = 'ERNET'
12
+ config.senha = 'ERNET'
13
+ end
14
+
15
+ # Cliente
16
+ @usuario_transacao = {
17
+ codigo_cliente: 1,
18
+ tipo_cliente: 1,
19
+ nome_comprador: 'Marcelo',
20
+ documento_comprador: '04795729921',
21
+ documento2_comprador: '97619077',
22
+ sexo_comprador: 'M',
23
+ data_nascimento_comprador: '14/03/1988',
24
+ telefone_comprador: '34166404',
25
+ ddd_comprador: '16',
26
+ ddi_comprador: '55',
27
+ codigo_tipo_telefone_comprador: 1,
28
+ telefone_adicional_comprador: '34166405',
29
+ ddd_adicional_comprador: '16',
30
+ ddi_adicional_comprador: '55',
31
+ codigo_tipo_telefone_adicional_comprador: 1,
32
+ email_comprador: 'marcelo@qw3.com.br',
33
+ endereco_comprador: 'Giácomo Casale',
34
+ numero_endereco_comprador: '147',
35
+ bairro_endereco_comprador: 'Jardim Alvorada',
36
+ complemento_endereco_comprador: '',
37
+ cidade_endereco_comprador: 'São Carlos',
38
+ estado_endereco_comprador: 'SP',
39
+ cep_endereco_comprador: '13562350',
40
+ endereco_entrega: 'Giácomo Casale',
41
+ numero_endereco_entrega: '147',
42
+ bairro_endereco_entrega: 'Jardim Alvorada',
43
+ complemento_endereco_entrega: '',
44
+ cidade_endereco_entrega: 'São Carlos',
45
+ estado_endereco_entrega: 'SP',
46
+ cep_endereco_entrega: '13562350',
47
+ telefone_entrega: '34166404',
48
+ ddd_entrega: '16',
49
+ ddi_entrega: '55',
50
+ codigo_tipo_telefone_entrega: 1,
51
+ telefone_adicional_entrega: '34166404',
52
+ ddd_adicional_entrega: '16',
53
+ ddi_adicional_entrega: '55',
54
+ codigo_tipo_telefone_adicional_entrega: 1,
55
+ }
56
+
57
+ # Pedido
58
+ @itens_do_pedido = [
59
+ {
60
+ codigo_produto: 1,
61
+ codigo_categoria: 1,
62
+ nome_produto: 'Produto 1',
63
+ nome_categoria: 'Categoria 1',
64
+ quantidade_produto: 1,
65
+ valor_unitario_produto: 50
66
+ },
67
+ {
68
+ codigo_produto: 1,
69
+ codigo_categoria: 1,
70
+ nome_produto: 'Produto 1',
71
+ nome_categoria: 'Categoria 1',
72
+ quantidade_produto: 1,
73
+ valor_unitario_produto: 50
74
+ }
75
+ ]
76
+
77
+ # Dados da venda
78
+ @venda = {
79
+ numero_transacao: 104,
80
+ codigo_forma_pagamento: 120,
81
+ valor: 100,
82
+ valor_desconto: 0,
83
+ taxa_embarque: 0,
84
+ parcelas: 1,
85
+ nome_titular_cartao_credito: 'Marcelo',
86
+ numero_cartao_credito: '4444333322221111',
87
+ codigo_seguranca: '123',
88
+ data_validade_cartao: '12/2016',
89
+ url_campainha: 'teste',
90
+ ip: '187.39.185.39',
91
+ idioma: 1,
92
+ origem_transacao: 1,
93
+ campo_livre1: '',
94
+ campo_livre2: '',
95
+ campo_livre3: '',
96
+ campo_livre4: '',
97
+ campo_livre5: '',
98
+ campo_livre6: '',
99
+ dados_usuario_transacao: @usuario_transacao,
100
+ itens_do_pedido: @itens_do_pedido
101
+ }
102
+
103
+ end
104
+
105
+ it "deveria pagar com sucesso" do
106
+ transacao = Superpay::Transacao.pagar( @venda )
107
+ transacao[:autorizacao].must_equal '0'
108
+ transacao[:codigo_estabelecimento].must_equal Superpay.config.estabelecimento.to_s
109
+ transacao[:codigo_forma_pagamento].must_equal '120'
110
+ transacao[:codigo_transacao_operadora].must_equal '0'
111
+ # transacao[:data_aprovacao_operadora].must_equal '21/06/2013'
112
+ # transacao[:mensagem_venda].must_equal 'Autorizada'
113
+ transacao[:numero_transacao].must_equal '104'
114
+ transacao[:parcelas].must_equal '1'
115
+ transacao[:status_transacao].must_equal '31'
116
+ transacao[:status].must_equal :ja_efetuada
117
+ transacao[:taxa_embarque].must_equal 0
118
+ transacao[:valor].must_equal 1
119
+ transacao[:valor_desconto].must_equal 0
120
+ end
121
+
122
+ it "deveria consultar com sucesso" do
123
+ transacao = Superpay::Transacao.consultar(104)
124
+ transacao[:autorizacao].must_equal '0'
125
+ transacao[:codigo_estabelecimento].must_equal Superpay.config.estabelecimento.to_s
126
+ transacao[:codigo_forma_pagamento].must_equal '120'
127
+ transacao[:codigo_transacao_operadora].must_equal '0'
128
+ # transacao[:data_aprovacao_operadora].must_equal '21/06/2013'
129
+ # transacao[:mensagem_venda].must_equal 'Autorizada'
130
+ transacao[:numero_transacao].must_equal '104'
131
+ transacao[:parcelas].must_equal '1'
132
+ transacao[:status_transacao].must_equal '13'
133
+ transacao[:status].must_equal :cancelada
134
+ transacao[:valor].must_equal 1
135
+ transacao[:taxa_embarque].must_equal 0
136
+ transacao[:valor_desconto].must_equal 0
137
+ end
138
+
139
+ it "deveria voltar erro se consultar transacao que não existe" do
140
+ transacao = Superpay::Transacao.consultar(0)
141
+ puts transacao.to_yaml
142
+ end
143
+
144
+ it "deveria pagar pela primeira vez com sucesso" do
145
+
146
+ transacao = {
147
+ numero_transacao: 106,
148
+ codigo_forma_pagamento: 121,
149
+ valor: 107.45,
150
+ valor_desconto: 0,
151
+ taxa_embarque: 0,
152
+ parcelas: 1,
153
+ nome_titular_cartao_credito: 'Marcelo',
154
+ numero_cartao_credito: '5390124620377429',
155
+ codigo_seguranca: '123',
156
+ data_validade_cartao: '12/2016',
157
+ url_campainha: 'teste',
158
+ ip: '187.39.185.39',
159
+ idioma: 1,
160
+ origem_transacao: 1,
161
+ campo_livre1: '',
162
+ campo_livre2: '',
163
+ campo_livre3: '',
164
+ campo_livre4: '',
165
+ campo_livre5: '',
166
+ campo_livre6: '',
167
+ dados_usuario_transacao: {
168
+ codigo_cliente: 1,
169
+ tipo_cliente: 1,
170
+ nome_comprador: 'Marcelo',
171
+ documento_comprador: '04795729921',
172
+ documento2_comprador: '97619077',
173
+ sexo_comprador: 'M',
174
+ data_nascimento_comprador: '14/03/1988',
175
+ telefone_comprador: '34166404',
176
+ ddd_comprador: '16',
177
+ ddi_comprador: '55',
178
+ codigo_tipo_telefone_comprador: 1,
179
+ telefone_adicional_comprador: '34166405',
180
+ ddd_adicional_comprador: '16',
181
+ ddi_adicional_comprador: '55',
182
+ codigo_tipo_telefone_adicional_comprador: 1,
183
+ email_comprador: 'marcelo@qw3.com.br',
184
+ endereco_comprador: 'Giácomo Casale',
185
+ numero_endereco_comprador: '147',
186
+ bairro_endereco_comprador: 'Jardim Alvorada',
187
+ complemento_endereco_comprador: '',
188
+ cidade_endereco_comprador: 'São Carlos',
189
+ estado_endereco_comprador: 'SP',
190
+ cep_endereco_comprador: '13562350',
191
+ endereco_entrega: 'Giácomo Casale',
192
+ numero_endereco_entrega: '147',
193
+ bairro_endereco_entrega: 'Jardim Alvorada',
194
+ complemento_endereco_entrega: '',
195
+ cidade_endereco_entrega: 'São Carlos',
196
+ estado_endereco_entrega: 'SP',
197
+ cep_endereco_entrega: '13562350',
198
+ telefone_entrega: '34166404',
199
+ ddd_entrega: '16',
200
+ ddi_entrega: '55',
201
+ codigo_tipo_telefone_entrega: 1,
202
+ telefone_adicional_entrega: '34166404',
203
+ ddd_adicional_entrega: '16',
204
+ ddi_adicional_entrega: '55',
205
+ codigo_tipo_telefone_adicional_entrega: 1
206
+ },
207
+ itens_do_pedido: {
208
+ codigo_produto: 1,
209
+ codigo_categoria: 1,
210
+ nome_produto: 'Produto 1',
211
+ nome_categoria: 'Categoria 1',
212
+ quantidade_produto: 1,
213
+ valor_unitario_produto: 107.45
214
+ }
215
+ }
216
+
217
+ transacao = Superpay::Transacao.pagar( transacao )
218
+ transacao[:autorizacao].must_equal '0'
219
+ transacao[:codigo_estabelecimento].must_equal Superpay.config.estabelecimento.to_s
220
+ transacao[:codigo_forma_pagamento].must_equal '121'
221
+ transacao[:codigo_transacao_operadora].must_equal '0'
222
+ # transacao[:data_aprovacao_operadora].must_equal Date.today
223
+ # transacao[:mensagem_venda].must_equal 'Autorizada'
224
+ transacao[:numero_transacao].must_equal '106'
225
+ transacao[:parcelas].must_equal '1'
226
+ transacao[:status_transacao].must_equal '31'
227
+ transacao[:status].must_equal :ja_efetuada
228
+ transacao[:taxa_embarque].must_equal 0
229
+ transacao[:valor].must_equal 107.45
230
+ transacao[:valor_desconto].must_equal 0
231
+
232
+ end
233
+
234
+ end
metadata ADDED
@@ -0,0 +1,148 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: superpay
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - QW3 Software & Marketing
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-07-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: brdinheiro
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: brdata
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: savon
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: '2.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: '2.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '5.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '5.0'
97
+ description: Gem de integração com o gateway de pagamentos Superpay
98
+ email:
99
+ - contato@qw3.com.br
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - .gitignore
105
+ - Gemfile
106
+ - LICENSE.txt
107
+ - README.md
108
+ - Rakefile
109
+ - lib/superpay.rb
110
+ - lib/superpay/conector.rb
111
+ - lib/superpay/configuracao.rb
112
+ - lib/superpay/helper.rb
113
+ - lib/superpay/transacao.rb
114
+ - lib/superpay/version.rb
115
+ - superpay.gemspec
116
+ - test/conexao_test.rb
117
+ - test/configuracao_test.rb
118
+ - test/helper_test.rb
119
+ - test/transacao_test.rb
120
+ homepage: https://github.com/qw3/superpay
121
+ licenses:
122
+ - MIT
123
+ metadata: {}
124
+ post_install_message:
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ requirements: []
139
+ rubyforge_project:
140
+ rubygems_version: 2.0.3
141
+ signing_key:
142
+ specification_version: 4
143
+ summary: Projeto extraído da construção da plataforma de e-commerce Profit, da QW3.
144
+ test_files:
145
+ - test/conexao_test.rb
146
+ - test/configuracao_test.rb
147
+ - test/helper_test.rb
148
+ - test/transacao_test.rb