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