pagamento_digital 0.1.2beta

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,29 @@
1
+ module PagamentoDigital
2
+ class DeveloperController < ::ActionController::Base
3
+ skip_before_filter :verify_authenticity_token
4
+
5
+ ORDERS_FILE = File.join(Rails.root, "tmp", "pagamento_digital-#{Rails.env}.yml")
6
+
7
+ def create
8
+ # create the orders file if doesn't exist
9
+ FileUtils.touch(ORDERS_FILE) unless File.exist?(ORDERS_FILE)
10
+
11
+ # YAML caveat: if file is empty false is returned;
12
+ # we need to set default to an empty hash in this case
13
+ orders = YAML.load_file(ORDERS_FILE) || {}
14
+
15
+ # add a new order, associating it with the order id
16
+ orders[params[:id_pedido]] = params.except(:controller, :action, :only_path, :authenticity_token)
17
+
18
+ # save the file
19
+ File.open(ORDERS_FILE, "w+") do |file|
20
+ file << orders.to_yaml
21
+ end
22
+
23
+ # redirect to the configuration url
24
+ redirect = PagamentoDigital.config["return_to"].gsub(/\/?(.*)/,"/\\1")
25
+
26
+ return redirect_to redirect + "?id_pedido=#{params[:id_pedido]}"
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,4 @@
1
+ module PagamentoDigital #:nodoc:
2
+ class Engine < ::Rails::Engine #:nodoc:
3
+ end
4
+ end
@@ -0,0 +1,172 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module PagamentoDigital
3
+ module Faker
4
+ extend self
5
+
6
+ NAMES = [
7
+ "Agatha", "Alana", "Alexandre", "Alice", "Aline", "Alícia", "Amanda", "Ana", "Ana", "André",
8
+ "Anthony", "Antônio", "Arthur", "Augusto", "Beatriz", "Benjamin", "Benício", "Bernardo",
9
+ "Bianca", "Brenda", "Breno", "Bruna", "Bruno", "Bryan", "Bárbara", "Caio", "Calebe", "Camila",
10
+ "Carlos", "Carolina", "Catarina", "Cecília", "Clara", "Clarice", "César", "Daniel", "Danilo",
11
+ "Davi", "Diego", "Diogo", "Eduarda", "Eduardo", "Elisa", "Eloá", "Emanuel", "Emanuela",
12
+ "Emily", "Enrico", "Enzo", "Erick", "Esther", "Evelyn", "Felipe", "Felipe", "Fernanda",
13
+ "Fernando", "Francisco", "Gabriel", "Gabriela", "Giovanna", "Giovanni", "Guilherme",
14
+ "Gustavo", "Heitor", "Helena", "Heloísa", "Henrique", "Henry", "Hugo", "Igor", "Isaac",
15
+ "Isabel", "Isabella", "Isadora", "Joana", "Joaquim", "Jonathan", "João", "Juan", "Juliana",
16
+ "Júlia", "Júlio", "Kamilly", "Kauã", "Kauê", "Kaíque", "Kevin", "Kyara", "Lara", "Larissa",
17
+ "Laura", "Lavínia", "Laís", "Leonardo", "Letícia", "Levi", "Lorena", "Lorenzo", "Luan",
18
+ "Luana", "Luca", "Lucas", "Luigi", "Luiz", "Luiza", "Luna", "Lívia", "Maitê", "Manuela",
19
+ "Marcela", "Marco", "Marcos", "Maria", "Mariana", "Marina", "Matheus", "Melissa", "Miguel",
20
+ "Milena", "Mirella", "Murilo", "Nathalia", "Nathan", "Nicolas", "Nicole", "Nina", "Olívia",
21
+ "Otávio", "Paulo", "Pedro", "Pietra", "Rafael", "Rafaela", "Raquel", "Raul", "Rayssa",
22
+ "Rebeca", "Renan", "Ricardo", "Rodrigo", "Ryan", "Sabrina", "Samuel", "Sarah", "Sophia",
23
+ "Sophie", "Stefany", "Stella", "Thais", "Thayla", "Theo", "Thomas", "Tiago", "Valentina",
24
+ "Vicente", "Vinicius", "Vitor", "Vitória", "Yago", "Yan", "Yasmin", "Yuri", "Ísis"
25
+ ]
26
+
27
+ SURNAMES = [
28
+ "Abreu", "Aguiar", "Alencar", "Almeida", "Alves", "Amaral", "Ambrósio", "Amorim", "Amorim Neto",
29
+ "Andrade", "Andrade Filho", "Antunes", "Aparício", "Araújo", "Assis", "Azevedo", "Baltazar",
30
+ "Barbosa", "Bardini", "Barni", "Barra", "Barreto", "Barros", "Bastos", "Batista", "Belarmino",
31
+ "Bento Da Silva", "Bezerra", "Bianchini", "Bittencourt", "Boaventura", "Bonfim", "Borges",
32
+ "Braga", "Branco", "Brasil", "Brito", "Brunelli", "Cachoeira", "Caetano", "Camargo",
33
+ "Campos", "Canella", "Cardoso", "Carvalho", "Castilho", "Castro", "Coelho", "Correia", "Costa",
34
+ "Cândido", "de Sá", "Delfino", "do Vale", "Duarte", "Dutra", "Espindola", "Facchini", "Fagundes",
35
+ "Farias", "Fernandes", "Ferreira", "Fonseca", "Fortunato", "Franz", "França", "Freitas",
36
+ "Gomes", "Gonçalves", "Goulart", "Guedes", "Guerra", "Guimarães", "Hungaro", "Justino", "Leal",
37
+ "Leite", "Lima", "Linhares", "Liz", "Lombardi", "Lopes", "Macedo", "Machado", "Maia", "Manhães",
38
+ "Marques", "Martins", "Mendes", "Molinari", "Monteiro", "Morais", "Moreira", "Motta", "Neves",
39
+ "Nunes", "Oliveira", "Pacheco", "Paiva", "Pinheiro", "Pinto", "Ribeiro", "Rocha", "Rodrigues",
40
+ "Salles", "Santos", "Silva", "Souza", "Teixeira", "Vaz", "Ventura", "Vieira"
41
+ ]
42
+
43
+ CITIES = [
44
+ "Augustinópolis", "Alegre", "Anitápolis", "Aroeiras do Itaim", "Auriflama", "Areia Branca",
45
+ "Areial", "Avelinópolis", "Açucena", "Álvaro de Carvalho", "Araguaína", "Arroio do Tigre",
46
+ "Anguera", "Águas Mornas", "Aquiraz", "Belmonte", "Barracão", "Barreira", "Belém de Maria",
47
+ "Barra do Chapéu", "Bandeira do Sul", "Biquinhas", "Baependi", "Bela Vista de Goiás",
48
+ "Buriti dos Montes", "Bom Lugar", "Brasil Novo", "Bocaiuva", "Bela Vista do Maranhão",
49
+ "Bom Sucesso de Itararé", "Caridade", "Capela", "Colombo", "Celso Ramos", "Carmolândia",
50
+ "Conceição do Castelo", "Camargo", "Carnaíba", "Carambeí", "Cametá", "Conceição de Macabu",
51
+ "Coronel Martins", "Capela", "Campina Verde", "Curiúva", "Divisópolis", "Darcinópolis",
52
+ "Divinolândia de Minas", "Dores do Turvo", "Dom Cavati", "Delfim Moreira", "Dobrada",
53
+ "Dona Emma", "Dionísio", "Delmiro Gouveia", "Dona Inês", "Dom Feliciano", "Datas",
54
+ "Divisa Alegre", "Dom Eliseu", "Ermo", "Escada", "Embaúba", "Encantado", "Elias Fausto",
55
+ "Embu", "Espírito Santo", "Encruzilhada", "Engenheiro Paulo de Frontin", "Equador",
56
+ "Erebango", "Estiva", "Esmeraldas", "Espera Feliz", "Eugênio de Castro", "Formoso", "Faro",
57
+ "Frutuoso Gomes", "Formoso do Araguaia", "Floreal", "Francisco Alves", "Fartura do Piauí",
58
+ "Ferreira Gomes", "Florestal", "Fontoura Xavier", "Fernandes Pinheiro", "Francisco Macedo",
59
+ "Fortaleza dos Valos", "Formigueiro", "Feira Grande", "Granito", "Gália", "General Carneiro",
60
+ "Graça", "Guarda-Mor", "Glória de Dourados", "Guarantã", "Gurjão", "Guareí",
61
+ "Governador Eugênio Barros", "Guarani das Missões", "Guaíba", "Glorinha", "Gilbués",
62
+ "Granja", "Horizontina", "Honório Serpa", "Hortolândia", "Heliópolis", "Horizonte",
63
+ "Hugo Napoleão", "Holambra", "Heitoraí", "Humaitá", "Humberto de Campos", "Hulha Negra",
64
+ "Humaitá", "Heliodora", "Herval", "Hidrolândia", "Itajá", "Inimutaba", "Itauçu",
65
+ "Itaporã do Tocantins", "Ivoti", "Ipaussu", "Itapirapuã", "Itiúba", "Itatinga", "Ipanema",
66
+ "Itaporanga", "Itamarati", "Itabira", "Imbé", "Iacri", "Japi", "Júlio Borges", "Jaciara",
67
+ "Jesuânia", "Jenipapo dos Vieiras", "Jucurutu", "Jaguaquara", "Jacobina do Piauí",
68
+ "Jaguariaíva", "Jaupaci", "Jatobá", "Juranda", "José Bonifácio", "Joaquim Távora",
69
+ "Jandira", "Kaloré", "Lagoinha", "Lambari d'Oeste", "Luís Alves", "Limoeiro",
70
+ "Lagoa do Piauí", "Liberato Salzano", "Luzerna", "Luciara", "Lindoeste", "Luislândia",
71
+ "Lajedinho", "Luzinópolis", "Lapa", "Lagoa Santa", "Luís Gomes", "Maratá", "Muniz Ferreira",
72
+ "Mato Verde", "Minaçu", "Marabá Paulista", "Monte Alegre", "Maripá", "Matias Cardoso",
73
+ "Mirandópolis", "Moema", "Monsenhor Tabosa", "Minador do Negrão", "Monte Santo de Minas",
74
+ "Miracatu", "Morada Nova", "Ninheira", "Nova União", "Niterói", "Nova Aurora", "Nova América",
75
+ "Nova Era", "Nova Aliança do Ivaí", "Nova Santa Helena", "Natércia", "Nova Tebas", "Natuba",
76
+ "Novo Hamburgo", "Nova Laranjeiras", "Neves Paulista", "Nova Candelária", "Ouro Velho",
77
+ "Ouro Verde do Oeste", "Ouro Fino", "Ourilândia do Norte", "Oeiras do Pará",
78
+ "Onça de Pitangui", "Oiapoque", "Óleo", "Olho d'Água do Piauí", "Olho d'Água do Casado",
79
+ "Ocauçu", "Ouro Verde", "Oliveira Fortes", "Orobó", "Osvaldo Cruz", "Pacatuba", "Peabiru",
80
+ "Portel", "Paverama", "Poção de Pedras", "Pirapemas", "Palestina", "Pedrinópolis",
81
+ "Pirpirituba", "Pantano Grande", "Pitangueiras", "Paulistânia", "Paulistas",
82
+ "Pedra Bonita", "Planalto da Serra", "Quixeré", "Quarto Centenário", "Quilombo",
83
+ "Quixaba", "Quatis", "Quixadá", "Quissamã", "Queluzito", "Quixabeira", "Quijingue",
84
+ "Quitandinha", "Queimada Nova", "Quixeramobim", "Queimadas", "Quinta do Sol", "Rio Preto",
85
+ "Ronda Alta", "Rio Bananal", "Rio Rufino", "Rondolândia", "Riacho de Santo Antônio",
86
+ "Rolim de Moura", "Riqueza", "Raposa", "Rio das Antas", "Riacho dos Machados", "Ribeirópolis",
87
+ "Raul Soares", "Rio Grande da Serra", "Roseira", "São João", "Santa Rita do Sapucaí",
88
+ "Salto do Jacuí", "Saúde", "Senador Georgino Avelino", "São Sebastião do Oeste", "São Pedro",
89
+ "Santa Cecília", "São José dos Quatro Marcos", "Sapé", "São Felipe d'Oeste",
90
+ "São Gonçalo do Amarante", "Siriri", "Sales Oliveira", "Santa Terezinha", "Timbó Grande",
91
+ "Tamboara", "Taguaí", "Trairão", "Theobroma", "Taperoá", "Torre de Pedra", "Teutônia",
92
+ "Taquarivaí", "Tanhaçu", "Tenório", "Três Lagoas", "Taperoá", "Terra Santa",
93
+ "Tangará da Serra", "Urupá", "Uiraúna", "Uchoa", "Uruoca", "União", "Uruguaiana",
94
+ "Uarini", "Ubaíra", "Una", "Urucará", "Uberaba", "Uru", "Umbuzeiro", "União Paulista",
95
+ "Umuarama", "Varjota", "Virgolândia", "Viçosa do Ceará", "Vera Cruz", "Vespasiano",
96
+ "Vista Gaúcha", "Vila Propício", "Vargem", "Vista Serrana", "Várzea Nova",
97
+ "Visconde do Rio Branco", "Várzea da Roça", "Vicência", "Venâncio Aires", "Vera",
98
+ "Witmarsum", "Wenceslau Guimarães", "Westfália", "Wenceslau Braz", "Wagner", "Wanderley",
99
+ "Wenceslau Braz", "Wall Ferraz", "Wanderlândia", "Xapuri", "Xangri-lá", "Xinguara", "Xaxim",
100
+ "Xambioá", "Xambrê", "Xexéu", "Xavantina", "Xanxerê", "Xique-Xique", "Zortéa", "Zabelê",
101
+ "Zé Doca", "Zacarias"
102
+ ]
103
+
104
+ STATES = [
105
+ "Acre", "Alagoas", "Amapá", "Amazonas", "Bahia", "Ceará", "Distrito Federal", "Espírito Santo",
106
+ "Goiás", "Maranhão", "Mato Grosso", "Mato Grosso do Sul", "Minas Gerais", "Pará", "Paraíba",
107
+ "Paraná", "Pernambuco", "Piauí", "Rio de Janeiro", "Rio Grande do Norte", "Rio Grande do Sul",
108
+ "Rondônia", "Roraima", "Santa Catarina", "São Paulo", "Sergipe", "Tocantins"
109
+ ]
110
+
111
+ EMAILS = [
112
+ "gmail.com", "yahoo.com.br", "hotmail.com", "uol.com.br", "ig.com.br", "bol.com.br"
113
+ ]
114
+
115
+ STREET_TYPES = ["Rua", "Avenida", "Estrada", "Alameda"]
116
+
117
+ SECONDARY_ADDRESS = ["Apto", "Casa", "Bloco"]
118
+
119
+ def street_name
120
+ "#{STREET_TYPES.sample} #{CITIES.sample}"
121
+ end
122
+
123
+ def secondary_address
124
+ "#{SECONDARY_ADDRESS.sample} #{rand(1000)}"
125
+ end
126
+
127
+ def phone_number(format = "(##) ####-####")
128
+ format.gsub(/#/) { (1..9).to_a.sample }
129
+ end
130
+
131
+ def zipcode
132
+ "#####-###".gsub(/#/) { (0..9).to_a.sample }
133
+ end
134
+
135
+ def email(base = nil)
136
+ base ||= full_name
137
+ base = normalize(base.downcase).gsub(/-/, ".")
138
+ "#{base}@#{EMAILS.sample}"
139
+ end
140
+
141
+ def name
142
+ NAMES.sample
143
+ end
144
+
145
+ def surname
146
+ SURNAMES.sample
147
+ end
148
+
149
+ def full_name
150
+ "#{name} #{surname}"
151
+ end
152
+
153
+ def city
154
+ CITIES.sample
155
+ end
156
+
157
+ def state
158
+ STATES.sample
159
+ end
160
+
161
+ private
162
+ def normalize(str)
163
+ str = ActiveSupport::Multibyte::Chars.new(str.dup)
164
+ str = str.normalize(:kd).gsub(/[^\x00-\x7F]/, "").to_s
165
+ str.gsub!(/[^-\w\d]+/xim, "-")
166
+ str.gsub!(/-+/xm, "-")
167
+ str.gsub!(/^-?(.*?)-?$/, '\1')
168
+ str.downcase!
169
+ str
170
+ end
171
+ end
172
+ end
@@ -0,0 +1,12 @@
1
+ require "rails/generators/base"
2
+
3
+ module PagamentoDigital
4
+ class InstallGenerator < ::Rails::Generators::Base
5
+ namespace "pagseguro:install"
6
+ source_root File.dirname(__FILE__) + "/../../templates"
7
+
8
+ def copy_configuration_file
9
+ copy_file "config.rb", "config/pagamento_digital.rb"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ module PagamentoDigital::Helper
2
+ def pagamento_digital_form(order, options = {})
3
+ options.reverse_merge!(:submit => "Pagar com pagamento digital")
4
+ render :partial => "pagamento_digital/form", :locals => { :options => options, :order => order}
5
+ end
6
+ end
@@ -0,0 +1,247 @@
1
+ # encoding: utf-8
2
+
3
+
4
+ module PagamentoDigital
5
+ class Notification
6
+ API_URL = "https://www.pagamentodigital.com.br/checkout/verify/"
7
+
8
+ # Map all the attributes from PagamentoDigital.
9
+ #
10
+ MAPPING = {
11
+ :tipo_pagamento => "tipo_pagamento",
12
+ :id_pedido => "id_pedido",
13
+ :processed_at => "data_transacao",
14
+ :status => "status",
15
+ :cod_status => "cod_status",
16
+ :id_transacao => "id_transacao",
17
+ :valor_original => 'valor_original',
18
+ :parcelas => 'parcelas',
19
+ :valor_loja => 'valor_loja',
20
+ :valor_total => 'valor_total',
21
+ :frete => 'frete',
22
+ :tipo_frete => 'tipo_frete',
23
+ :informacoes_loja => 'informacoes_loja',
24
+ :free => 'free',
25
+ :email_vendedor => 'email_vendedor',
26
+ }
27
+
28
+
29
+ COD_STATUS ={
30
+ '0' => :pendente,
31
+ '1' => :aprovada,
32
+ '2' => :cancelada
33
+ }
34
+
35
+
36
+
37
+
38
+ # # Map payment method from PagamentoDigital.
39
+ # #
40
+ PAYMENT_METHOD = {
41
+ "Boleto Bancário" => :boleto,
42
+ "Visa" => :credicard_visa,
43
+ "Mastercard" => :credicard_mastercard,
44
+ "American Express" => :credicard_amex,
45
+ "Diners" => :credicard_diners,
46
+ "Aura" => :credicard_aura,
47
+ "HiperCard" => :credicard_hiper,
48
+ "Transferência OnLine Banco do Brasil" => :trans_bb,
49
+ "Transferência OnLine Bradesco" => :trans_bradesco,
50
+ "Transferência OnLine Itaú" => :trans_itau,
51
+ "Transferência OnLine Banrisul" => :trans_banrisul,
52
+ "Transferência OnLine HSBC" => :trans_hsbc,
53
+
54
+ }
55
+
56
+ # The Rails params hash.
57
+ #
58
+ attr_accessor :params
59
+
60
+ # Expects the params object from the current request.
61
+ # PagamentoDigital will send POST with ISO-8859-1 encoded data,
62
+ # so we need to normalize it to UTF-8.
63
+ #
64
+ def initialize(params, token = nil)
65
+ @token = token
66
+ @params = PagamentoDigital.developer? ? params : normalize(params)
67
+ end
68
+
69
+ # Normalize the specified hash converting all data to UTF-8.
70
+ #
71
+ def normalize(hash)
72
+ return hash
73
+ # each_value(hash) do |value|
74
+ # Utils.to_utf8(value)
75
+ # end
76
+ end
77
+
78
+ # Denormalize the specified hash converting all data to ISO-8859-1.
79
+ #
80
+ def denormalize(hash)
81
+ return hash
82
+ # each_value(hash) do |value|
83
+ # Utils.to_iso8859(value)
84
+ # end
85
+ end
86
+
87
+ # Return a list of produtos sent by PagamentoDigital.
88
+ # The values will be normalized
89
+ # (e.g. currencies will be converted to cents, quantity will be an integer)
90
+ #
91
+ def produtos
92
+ @produtos ||= begin
93
+ items = []
94
+ i = 0;
95
+ loop do
96
+ i += 1
97
+ break if params["produto_qtde_#{i}"].blank?
98
+ items << {
99
+ :id => params["produto_codigo_#{i}"],
100
+ :descricao => params["produto_descricao_#{i}"],
101
+ :qtde => params["produto_qtde_#{i}"].to_i,
102
+ :preco => to_price(params["produto_valor_#{i}"]),
103
+ :extra => params["produto_extra_#{i}"]
104
+ }
105
+ end
106
+
107
+ items
108
+ end
109
+ end
110
+
111
+ def cliente
112
+ @cliente ||= params.inject({}){|ret,args|
113
+ key,value = args.first,args.second
114
+ ret[key.gsub('cliente_','')] = value if key =~ /^cliente_.*$/
115
+ ret
116
+ }
117
+ end
118
+
119
+
120
+ # Return the shipping fee.
121
+ # Will be converted to a float number.
122
+ #
123
+ def frete
124
+ to_price mapping_for(:frete)
125
+ end
126
+
127
+ # Return the order status.
128
+ # Will be mapped to the STATUS constant.
129
+ #
130
+ def status
131
+ @status ||= COD_STATUS[mapping_for(:cod_status).to_s]
132
+ end
133
+ def aprovada?
134
+ status == :aprovada
135
+ end
136
+ def cancelada?
137
+ status == :cancelada
138
+ end
139
+ def pendente?
140
+ status == :pendente
141
+ end
142
+
143
+
144
+ # Return the payment method.
145
+ # Will be mapped to the PAYMENT_METHOD constant.
146
+ #
147
+ def payment_method
148
+ @payment_method ||= PAYMENT_METHOD[mapping_for()]
149
+ end
150
+
151
+ # Parse the processing date to a Ruby object.
152
+ #
153
+ def processed_at
154
+ @processed_at ||= begin
155
+ groups = *mapping_for(:processed_at).match(/(\d{2})\/(\d{2})\/(\d{4}) ([\d:]+)/sm)
156
+ Time.parse("#{groups[3]}-#{groups[2]}-#{groups[1]} #{groups[4]}")
157
+ end
158
+ end
159
+
160
+
161
+ def method_missing(method, *args)
162
+ return mapping_for(method) if MAPPING[method]
163
+ super
164
+ end
165
+
166
+ def respond_to?(method, include_private = false)
167
+ return true if MAPPING[method]
168
+ super
169
+ end
170
+
171
+ # A wrapper to the params hash,
172
+ # sanitizing the return to symbols.
173
+ #
174
+ def mapping_for(name)
175
+ params[MAPPING[name]]
176
+ end
177
+
178
+ # Cache the validation.
179
+ # To bypass the cache, just provide an argument that is evaluated as true.
180
+ #
181
+ # invoice.valid?
182
+ # invoice.valid?(:nocache)
183
+ #
184
+ def valid?(force=false)
185
+ @valid = nil if force
186
+ @valid = validates? if @valid.nil?
187
+ @valid
188
+ end
189
+
190
+ # Return all useful properties in a single hash.
191
+ #
192
+ def to_hash
193
+ MAPPING.inject({}) do |buffer, (name,value)|
194
+ buffer.merge(name => __send__(name))
195
+ end
196
+ end
197
+
198
+ private
199
+ def each_value(hash, &blk) # :nodoc:
200
+ hash.each do |key, value|
201
+ if value.kind_of?(Hash)
202
+ hash[key] = each_value(value, &blk)
203
+ else
204
+ hash[key] = blk.call value
205
+ end
206
+ end
207
+
208
+ hash
209
+ end
210
+
211
+ # Convert amount format to float.
212
+ #
213
+ def to_price(amount)
214
+ amount = "0#{amount}" if amount =~ /^\,/
215
+ amount.to_s.to_f
216
+ end
217
+
218
+
219
+
220
+ # Check if the provided data is valid by requesting the
221
+ # confirmation API url. The request will always be valid while running in
222
+ # developer mode.
223
+ #
224
+ def validates?
225
+ return true if PagamentoDigital.developer?
226
+ # include the params to validate our request
227
+
228
+ request_params = {
229
+ :transacao => params[:id_transacao],
230
+ :cod_status => params[:cod_status],
231
+ :valor_original => params[:valor_original],
232
+ :valor_loja => params[:valor_loja],
233
+ :token => @token || PagamentoDigital.config["authenticity_token"]
234
+ }
235
+
236
+
237
+ #send form by ruby
238
+ response = Net::HTTP.post_form(URI.parse(API_URL),denormalize(request_params) )
239
+
240
+ (response.body =~ /VERIFICADO/) != nil
241
+
242
+ end
243
+ end
244
+ end
245
+
246
+
247
+