superpay 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +9 -0
- data/lib/superpay.rb +31 -0
- data/lib/superpay/conector.rb +32 -0
- data/lib/superpay/configuracao.rb +32 -0
- data/lib/superpay/helper.rb +32 -0
- data/lib/superpay/transacao.rb +129 -0
- data/lib/superpay/version.rb +4 -0
- data/superpay.gemspec +28 -0
- data/test/conexao_test.rb +138 -0
- data/test/configuracao_test.rb +51 -0
- data/test/helper_test.rb +129 -0
- data/test/transacao_test.rb +234 -0
- metadata +148 -0
checksums.yaml
ADDED
@@ -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
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -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.
|
data/README.md
ADDED
@@ -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
|
data/Rakefile
ADDED
data/lib/superpay.rb
ADDED
@@ -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
|
data/superpay.gemspec
ADDED
@@ -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
|
data/test/helper_test.rb
ADDED
@@ -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
|