braspag_rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +32 -0
  5. data/lib/braspag_rails/action_controller.rb +4 -0
  6. data/lib/braspag_rails/base.rb +40 -0
  7. data/lib/braspag_rails/codigos.rb +250 -0
  8. data/lib/braspag_rails/consultas.rb +49 -0
  9. data/lib/braspag_rails/generator.rb +12 -0
  10. data/lib/braspag_rails/railtie.rb +17 -0
  11. data/lib/braspag_rails/transacoes/credito.rb +165 -0
  12. data/lib/braspag_rails/transacoes/debito.rb +52 -0
  13. data/lib/braspag_rails/transacoes/fraude.rb +203 -0
  14. data/lib/braspag_rails/util.rb +45 -0
  15. data/lib/braspag_rails/version.rb +3 -0
  16. data/lib/braspag_rails.rb +7 -0
  17. data/lib/tasks/braspag_rails_tasks.rake +4 -0
  18. data/lib/templates/config.yml +18 -0
  19. data/test/braspag_rails_test.rb +7 -0
  20. data/test/dummy/README.rdoc +28 -0
  21. data/test/dummy/Rakefile +6 -0
  22. data/test/dummy/app/assets/javascripts/application.js +13 -0
  23. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  24. data/test/dummy/app/controllers/application_controller.rb +5 -0
  25. data/test/dummy/app/helpers/application_helper.rb +2 -0
  26. data/test/dummy/app/models/concerns/testes_antifraude.rb +73 -0
  27. data/test/dummy/app/models/concerns/testes_credito.rb +15 -0
  28. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  29. data/test/dummy/bin/bundle +3 -0
  30. data/test/dummy/bin/rails +4 -0
  31. data/test/dummy/bin/rake +4 -0
  32. data/test/dummy/config/application.rb +25 -0
  33. data/test/dummy/config/boot.rb +5 -0
  34. data/test/dummy/config/braspag.yml +17 -0
  35. data/test/dummy/config/database.yml +25 -0
  36. data/test/dummy/config/environment.rb +5 -0
  37. data/test/dummy/config/environments/development.rb +37 -0
  38. data/test/dummy/config/environments/production.rb +82 -0
  39. data/test/dummy/config/environments/test.rb +39 -0
  40. data/test/dummy/config/initializers/assets.rb +8 -0
  41. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  42. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  43. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  44. data/test/dummy/config/initializers/inflections.rb +16 -0
  45. data/test/dummy/config/initializers/mime_types.rb +4 -0
  46. data/test/dummy/config/initializers/session_store.rb +3 -0
  47. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  48. data/test/dummy/config/locales/en.yml +23 -0
  49. data/test/dummy/config/routes.rb +56 -0
  50. data/test/dummy/config/secrets.yml +22 -0
  51. data/test/dummy/config.ru +4 -0
  52. data/test/dummy/log/development.log +0 -0
  53. data/test/dummy/public/404.html +67 -0
  54. data/test/dummy/public/422.html +67 -0
  55. data/test/dummy/public/500.html +66 -0
  56. data/test/dummy/public/favicon.ico +0 -0
  57. data/test/test_helper.rb +15 -0
  58. metadata +167 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 41b68cbabec436050ecc9642afc47f73bf9aacb6
4
+ data.tar.gz: a11eed962998864299d2006e4412ad17f50330ae
5
+ SHA512:
6
+ metadata.gz: 24dfbd084bce7ce7fd62169a5845a002075ddea4ac355757fecb50831b6f9ab7c1649b7024be714b84ede7b7cc078ea1da9740848ea13fabcde54440b741ec9c
7
+ data.tar.gz: a98d9385231ed8a5ba8a67b74a6d17c1686deb3d64244aa1cad5ca09549930d97c309311dea62a9c7c896d592d76c1a40748e400e6a4e935c6d445e714a140b4
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2014 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,3 @@
1
+ = BraspagRails2
2
+
3
+ This project rocks and uses MIT-LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,32 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'BraspagRails2'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+
18
+
19
+
20
+ Bundler::GemHelper.install_tasks
21
+
22
+ require 'rake/testtask'
23
+
24
+ Rake::TestTask.new(:test) do |t|
25
+ t.libs << 'lib'
26
+ t.libs << 'test'
27
+ t.pattern = 'test/**/*_test.rb'
28
+ t.verbose = false
29
+ end
30
+
31
+
32
+ task default: :test
@@ -0,0 +1,4 @@
1
+ module BraspagRails
2
+ module ActionController
3
+ end
4
+ end
@@ -0,0 +1,40 @@
1
+ module BraspagRails
2
+ extend self
3
+
4
+ # Hold the config/braspag.yml contents
5
+ @@config = nil
6
+
7
+ # The path to the configuration file
8
+ def config_file
9
+ Dir.pwd + "/config/braspag.yml"
10
+ end
11
+
12
+ # Check if configuration file exists.
13
+ def config?
14
+ File.exist?(config_file)
15
+ end
16
+
17
+ # Load configuration file.
18
+ def config
19
+ raise MissingConfigurationError, "file not found on #{config_file.inspect}" unless config?
20
+
21
+ # load file if is not loaded yet
22
+ @@config ||= YAML.load_file(config_file)
23
+
24
+ # raise an exception if the environment hasn't been set
25
+ # or if file is empty
26
+ if @@config == false || !@@config[Rails.env]
27
+ raise MissingEnvironmentError, ":#{Rails.env} environment not set on #{config_file.inspect}"
28
+ end
29
+
30
+ # retrieve the environment settings
31
+ @@config[Rails.env]
32
+ end
33
+
34
+ def developer?
35
+ config? && config["developer"] == true
36
+ end
37
+
38
+ class MissingEnvironmentError < StandardError; end
39
+ class MissingConfigurationError < StandardError; end
40
+ end
@@ -0,0 +1,250 @@
1
+ module BraspagRails
2
+
3
+ CODIGOS_RETORNO_AUTORIZACAO = {
4
+ 2 => "Não autorizada",
5
+ 4 => "Operação realizada com sucesso",
6
+ 57 => "Cartão expirado",
7
+ 70 => "Problemas com o cartão de crédito",
8
+ 77 => "Cartão cancelado",
9
+ 78 => "Cartão bloqueado",
10
+ 99 => "Timed Out"
11
+ }
12
+
13
+ STATUS_RETORNO_AUTORIZACAO = {
14
+ 0 => "Transação capturada",
15
+ 1 => "Transação autorizada, pendente de captura.",
16
+ 2 => "Transação não autorizada, pela adquirente.",
17
+ 3 => "Transação com erro desqualificante.",
18
+ 4 => "Transação aguardando resposta."
19
+ }
20
+
21
+ STATUS_RETORNO_CAPTURA = {
22
+ 0 => "Sucesso",
23
+ 2 => "Negada"
24
+ }
25
+
26
+ STATUS_TRANSACAO = {
27
+ 0 => "A transação está com status indefinido",
28
+ 1 => "A transação foi capturada",
29
+ 2 => "A transação foi autorizada",
30
+ 3 => "A transação não foi autorizada",
31
+ 4 => "A transação foi cancelada",
32
+ 5 => "A transação foi estornada",
33
+ 6 => "A transação está aguardando resposta",
34
+ 7 => "A transação foi desqualificada"
35
+ }
36
+
37
+ PLANOS_DE_PAGAMENTO = {
38
+ 0 => "À vista",
39
+ 1 => "Parcelado pelo estabelecimento",
40
+ 2 => "Parcelado pelo emissor do cartão",
41
+ 3 => "Parcelado IATA pelo estabelecimento",
42
+ 4 => "Parcelado IATA pelo emissor do cartão",
43
+ 5 => "À vista, com IATA",
44
+ :a_vista => 0,
45
+ :parcelado_pelo_estabelecimento => 1,
46
+ :parcelado_pelo_emissor_do_cartao => 2,
47
+ :parcelado_IATA_pelo_estabelecimento => 3,
48
+ :parcelado_IATA_pelo_emissor_do_cartao => 4,
49
+ :a_vista_com_IATA => 5
50
+ }
51
+
52
+ MEIOS_DE_PAGAMENTO = {
53
+ 6 => "Boleto Bradesco",
54
+ 7 => "Boleto Caixa Econômica Federal ",
55
+ 8 => "Boleto HSBC",
56
+ 9 => "Boleto Banco do Brasil ",
57
+ 10 => "Boleto Real ABN AMRO ",
58
+ 13 => "Boleto Citibank",
59
+ 14 => "Boleto Itaú",
60
+ 123 => "Cielo Visa Electron",
61
+ 124 => "Boleto Santander",
62
+ 500 => "Cielo VISA",
63
+ 501 => "Cielo MASTERCARD",
64
+ 502 => "Cielo AMEX",
65
+ 503 => "Cielo DINERS",
66
+ 504 => "Cielo ELO",
67
+ 505 => "Banorte VISA",
68
+ 506 => "Banorte MASTERCARD ",
69
+ 507 => "Banorte DINERS",
70
+ 508 => "Banorte AMEX",
71
+ 509 => "Redecard Webservice VISA ",
72
+ 510 => "Redecard Webservice MASTERCARD ",
73
+ 511 => "Redecard Webservice DINERS ",
74
+ 512 => "PagosOnLine VISA ",
75
+ 513 => "PagosOnLine MASTERCARD ",
76
+ 514 => "PagosOnLine AMEX ",
77
+ 515 => "PagosOnLine DINERS ",
78
+ 516 => "Payvision VISA",
79
+ 517 => "Payvision MASTERCARD",
80
+ 518 => "Payvision DINERS",
81
+ 519 => "Payvision AMEX",
82
+ 520 => "Banorte Cargos Automáticos VISA ",
83
+ 521 => "Banorte Cargos Automáticos MASTERCARD ",
84
+ 523 => "AMEX 2P",
85
+ 524 => "SITEF VISA",
86
+ 525 => "SITEF MASTERCARD",
87
+ 526 => "SITEF AMEX",
88
+ 527 => "DITEF DINERS",
89
+ 528 => "SITEF HIPERCARD",
90
+ 529 => "SITEF LEADER",
91
+ 530 => "SITEF AURA",
92
+ 531 => "SITEF SANTANDER VISA",
93
+ 532 => "SITEF SANTANDER MASTERCARD ",
94
+ 533 => "ONEBUY",
95
+ 535 => "SUB1 – VISA",
96
+ 536 => "SUB1 – MASTERCARD",
97
+ 537 => "SUB1 - AMEX",
98
+ 538 => "SUB1 – DINERS",
99
+ 539 => "SITEF SONDA",
100
+ 540 => "SUB1 – NARANJA",
101
+ 541 => "SUB1 – NEVADA",
102
+ 542 => "SUB1 – CABAL",
103
+ 543 => "Cielo DISCOVER",
104
+ 544 => "Cielo JCB",
105
+ 545 => "Cielo AURA",
106
+ 546 => "Cartão Presente/Alelo",
107
+ 548 => "Redecard Hipercard",
108
+ 997 => "Cartão de Teste"
109
+ }
110
+
111
+ STATUS_RETORNO_ANTIFRAUDE = {
112
+ 500 => "Started",
113
+ 501 => "Accept",
114
+ 502 => "Review",
115
+ 503 => "Reject",
116
+ 504 => "Pendent",
117
+ 505 => "Unfinished",
118
+ 506 => "Aborted"
119
+ }
120
+
121
+ CODIGOS_DECISAO_ANTIFRAUDE = {
122
+ "Accept" => "ACCEPT",
123
+ "Error" => "ERROR",
124
+ "Reject" => "REJECT",
125
+ "Review" => "REVIEW"
126
+ }
127
+
128
+ RAZOES_ANTIFRAUDE = {
129
+ 100 => "Operação bem sucedida.",
130
+ 101 => "O pedido está faltando um ou mais campos necessários. Possível ação: Veja os campos que estão faltando na lista AntiFraudResponse.MissingFieldCollection. Reenviar o pedido com a informação completa.",
131
+ 102 => "Um ou mais campos do pedido contêm dados inválidos. Possível ação: Veja os campos inválidos na lista AntiFraudResponse.InvalidFieldCollection. Reenviar o pedido com as informações corretas.",
132
+ 150 => "Falha no sistema geral. Possível ação: Aguarde alguns minutos e tente reenviar o pedido.",
133
+ 151 => "O pedido foi recebido, mas ocorreu time-out no servidor. Este erro não inclui time-out entre o cliente e o servidor. Possível ação: Aguarde alguns minutos e tente reenviar o pedido.",
134
+ 152 => "O pedido foi recebido, mas ocorreu time-out. Possível ação: Aguarde alguns minutos e reenviar o pedido.",
135
+ 202 => "CyberSource recusou o pedido porque o cartão expirou. Você também pode receber este código se a data de validade não coincidir com a data em arquivo do banco emissor. Se o processador de pagamento permite a emissão de créditos para cartões expirados, a CyberSource não limita essa funcionalidade. Possível ação: Solicite um cartão ou outra forma de pagamento.",
136
+ 231 => "O número da conta é inválido. Possível ação: Solicite um cartão ou outra forma de pagamento.",
137
+ 234 => "Há um problema com a configuração do comerciante na CyberSource. Possível ação: Não envie o pedido. Entre em contato com o Suporte ao Cliente para corrigir o problema de configuração.",
138
+ 400 => "A pontuação de fraude ultrapassa o seu limite. Possível ação: Reveja o pedido do cliente.",
139
+ 480 => "O pedido foi marcado para revisão pelo Gerenciador de Decisão.",
140
+ 481 => "O pedido foi rejeitado pelo Gerenciador de Decisão."
141
+ }
142
+
143
+ FATORES_DE_RISCO = {
144
+ "A" => "Mudança de endereço excessiva. O cliente mudou o endereço de cobrança duas ou mais vezes nos últimos seis meses.",
145
+ "B" => "BIN do cartão ou autorização de risco. Os fatores de risco estão relacionados com BIN de cartão de crédito e/ou verificações de autorização do cartão.",
146
+ "C" => "Elevado números de cartões de créditos. O cliente tem usado mais de seis números de cartões de créditos nos últimos seis meses." ,
147
+ "D" => "Impacto do endereço de e-mail. O cliente usa um provedor de e-mail gratuito ou o endereço de email é arriscado." ,
148
+ "E" => "Lista positiva. O cliente está na sua lista positiva.",
149
+ "F" => "Lista negativa. O número da conta, endereço, endereço de e-mail ou endereço IP para este fim aparece sua lista negativa.",
150
+ "G" => "Inconsistências de geolocalização. O domínio do cliente de e-mail, número de telefone, endereço de cobrança, endereço de envio ou endereço IP é suspeito." ,
151
+ "H" => "Excessivas mudanças de nome. O cliente mudou o nome duas ou mais vezes nos últimos seis meses." ,
152
+ "I" => "Inconsistências de internet. O endereço IP e de domínio de e-mail não são consistentes com o endereço de cobrança." ,
153
+ "N" => "Entrada sem sentido. O nome do cliente e os campos de endereço contém palavras sem sentido ou idioma." ,
154
+ "O" => "Obscenidades. Dados do cliente contém palavras obscenas.",
155
+ "P" => "Identidade morphing. Vários valores de um elemento de identidade estão ligados a um valor de um elemento de identidade diferentes. Por exemplo, vários números de telefone estão ligados a um número de conta única.",
156
+ "Q" => "Inconsistências do telefone. O número de telefone do cliente é suspeito." ,
157
+ "R" => "Ordem arriscada. A transação, o cliente e o lojista mostram informações correlacionadas de alto risco." ,
158
+ "T" => "Cobertura Time. O cliente está a tentar uma compra fora do horário esperado." ,
159
+ "U" => "Endereço não verificável. O endereço de cobrança ou de entrega não pode ser verificado." ,
160
+ "V" => "Velocity. O número da conta foi usado muitas vezes nos últimos 15 minutos.",
161
+ "W" => "Marcado como suspeito. O endereço de cobrança ou de entrega é semelhante a um endereço previamente marcado como suspeito." ,
162
+ "Y" => "O endereço, cidade, estado ou país dos endereços de cobrança e entrega não se correlacionam.",
163
+ "Z" => "Valor inválido. Como a solicitação contém um valor inesperado, um valor padrão foi substituído. Embora a transação ainda possa ser processada, examinar o pedido com cuidado para detectar anomalias."
164
+ }
165
+
166
+ INFORMACAO_ENDERECO = {
167
+ "COR-BA" => "O endereço de cobrança pode ser normalizado.",
168
+ "COR-SA" => "O endereço de entrega pode ser normalizado.",
169
+ "INTL-BA" => "O país de cobrança é fora dos U.S.",
170
+ "INTL-SA" => "O país de entrega é fora dos U.S.",
171
+ "MIL-USA" => "Este é um endereço militar nos U.S.",
172
+ "MM-A" => "Os endereços de cobrança e entrega usam nomes de ruas diferentes.",
173
+ "MM-BIN" => "O BIN do cartão (os seis primeiros dígitos do número) não corresponde ao país.",
174
+ "MM-C" => "Os endereços de cobrança e entrega usam cidades diferentes.",
175
+ "MM-CO" => "Os endereços de cobrança e entrega usam países diferentes.",
176
+ "MM-ST" => "Os endereços de cobrança e entrega usam estados diferentes.",
177
+ "MM-Z" => "Os endereços de cobrança e entrega usam códidos postais diferentes.",
178
+ "UNV-ADDR" => "O endereço é inverificável."
179
+ }
180
+
181
+ INFORMACAO_EMAIL = {
182
+ "FREE-EM" => "O endereço de e-mail do cliente é de um provedor de e-mail gratuito.",
183
+ "INTL-IPCO" => "O país do endereço de e-mail do cliente é fora do U.S.",
184
+ "INV-EM" => "O endereço de e-mail do cliente é inválido.",
185
+ "MM-EMBCO" => "O domínio do endereço de e-mail do cliente não é consistente com o país do endereço de cobrança.",
186
+ "MM-IPBC" => "O endereço de e-mail do cliente não é consistente com a cidade do endereço de cobrança.",
187
+ "MM-IPBCO" => "O endereço de e-mail do cliente não é consistente com a país do endereço de cobrança.",
188
+ "MM-IPBST" => "O endereço IP do cliente não é consistente com o estado no endereço de cobrança. No entanto, este código de informação não pode ser devolvido quando a inconsistência é entre estados imediatamente adjacentes.",
189
+ "MM-IPEM" => "O endereço de e-mail do cliente não é consistente com o endereço IP.",
190
+ "RISK-EM" => "O domínio do e-mail do cliente (por exemplo, mail.example.com) está associada com alto risco.",
191
+ "UNV-NID" => "O endereço IP do cliente é de um proxy anônimo. Estas entidades escondem completamente informações sobre o endereço de IP.",
192
+ "UNV-RI400SK" => "O endereço IP é de origem de risco.",
193
+ "UNV-EMBCO" => "O país do endereço do cliente de e-mail não corresponde ao país do endereço de cobrança."
194
+ }
195
+
196
+ INFORMACAO_SUSPEITAS = {
197
+ "BAD-FP" => "O dispositivo é arriscado.",
198
+ "INTL-BIN" => "O cartão de crédito foi emitido fora dos U.S.",
199
+ "MM-TZTLO" => "Fuso horário do dispositivo é incompatível com os fusos horários do país.",
200
+ "MUL-EM" => "O cliente tem usado mais de quatro endereços de email diferentes.",
201
+ "NON-BC" => "A cidade de cobrança é um desconhecida.",
202
+ "NON-FN" => "O primeiro nome do cliente é desconhecido.",
203
+ "NON-LN" => "O último nome do cliente é desconhecido.",
204
+ "OBS-BC" => "A cidade de cobrança contem obscenidades.",
205
+ "OBS-EM" => "O endereço de e-mail contem obscenidades.",
206
+ "RISK-AVS" => "O resultado do teste combinado AVS e endereço de cobrança normalizado são arriscados, o resultado AVS indica uma correspondência exata, mas o endereço de cobrança não é entrega normalizada.",
207
+ "RISK-BC" => "A cidade de cobrança possui caracteres repetidos.",
208
+ "RISK-BIN" => "No passado, este BIN do cartão de crédito (os seis primeiros dígitos do número do cartão) mostrou uma elevada incidência de fraude.",
209
+ "RISK-DEV" => "Algumas das características do dispositivo são arriscadas.",
210
+ "RISK-FN" => "Nome e sobrenome do cliente contêm combinações de letras improváveis."
211
+ }
212
+
213
+ INFORMACAO_COMPRADOR = {
214
+ "VEL-ADDR" => "Diferente estados de faturamento e/ou o envio (EUA e Canadá apenas) têm sido usadas várias vezes com o número do cartão de crédito e/ou endereço de email.",
215
+ "VEL-CC" => "Diferentes números de contas foram usados várias vezes com o mesmo nome ou endereço de email.",
216
+ "VEL-NAME" => "Diferentes nomes foram usados várias vezes com o número do cartão de crédito e / ou endereço de email.",
217
+ "VELS-CC" => "O número de conta tem sido utilizado várias vezes durante o intervalo de controle curto.",
218
+ "VELI-CC" => "O número de conta tem sido utilizado várias vezes durante o intervalo de controle médio.",
219
+ "VELL-CC" => "O número de conta tem sido utilizado várias vezes durante o intervalo de controle longo.",
220
+ "VELV-CC" => "O número de conta tem sido utilizado várias vezes durante o intervalo de controle muito longo.",
221
+ "VELS-EM" => "O endereço de e-mail tem sido utilizado várias vezes durante o intervalo de controle curto.",
222
+ "VELI-EM" => "O endereço de e-mail tem sido utilizado várias vezes durante o intervalo de controle médio.",
223
+ "VELL-EM" => "O endereço de e-mail tem sido utilizado várias vezes durante o intervalo de controle longo.",
224
+ "VELV-EM" => "O endereço de e-mail tem sido utilizado várias vezes durante o intervalo de controle muito longo.",
225
+ "VELS-FP" => "O device fingerprint tem sido utilizado várias vezes durante um intervalo curto",
226
+ "VELI-FP" => "O device fingerprint tem sido utilizado várias vezes durante um intervalo médio",
227
+ "VELL-FP" => "O device fingerprint tem sido utilizado várias vezes durante um intervalo longo",
228
+ "VELV-FP" => "O device fingerprint tem sido utilizado várias vezes durante um intervalo muito longo",
229
+ "VELS-IP" => "O endereço IP tem sido utilizado várias vezes durante o intervalo de controle curto.",
230
+ "VELI-IP" => "O endereço IP tem sido utilizado várias vezes durante o intervalo de controle médio.",
231
+ "VELL-IP" => "O endereço IP tem sido utilizado várias vezes durante o intervalo de controle longo.",
232
+ "VELV-IP" => "O endereço IP tem sido utilizado várias vezes durante o intervalo de controle muito longo.",
233
+ "VELS-SA" => "O endereço de entrega tem sido utilizado várias vezes durante o intervalo de controle curto.",
234
+ "VELI-SA" => "O endereço de entrega tem sido utilizado várias vezes durante o intervalo de controle médio.",
235
+ "VELL-SA" => "O endereço de entrega tem sido utilizado várias vezes durante o intervalo de controle longo.",
236
+ "VELV-SA" => "O endereço de entrega tem sido utilizado várias vezes durante o intervalo de controle muito longo.",
237
+ "VELS-TIP" => "O endereço IP verdadeiro tem sido utilizado várias vezes durante o intervalo de controle curto.",
238
+ "VELI-TIP" => "O endereço IP verdadeiro tem sido utilizado várias vezes durante o intervalo de controle médio.",
239
+ "VELL-TIP" => "O endereço IP verdadeiro tem sido utilizado várias vezes durante o intervalo de controle longo."
240
+ }
241
+
242
+ STATUS_REQUISICAO = {
243
+ 0 => "Falha no recebimento da requisição pela Ferramenta de Antifraude",
244
+ 1 => "Requisição enviada com sucesso para a Ferramenta do Antifraude, e está sendo processada."
245
+ }
246
+
247
+
248
+
249
+ end
250
+
@@ -0,0 +1,49 @@
1
+ require 'savon'
2
+
3
+ module BraspagRails
4
+ class Consulta
5
+ extend ::Savon::Model
6
+
7
+ client wsdl: BraspagRails.config['wsdl_consulta']
8
+ global :open_timeout, 30
9
+ global :convert_request_keys_to, :none
10
+ operations :get_additional_data, :get_boleto_data, :get_braspag_order_id, :get_credit_card_data, :get_customer_data,
11
+ :get_delivery_address_data, :get_order_data, :get_order_id_data, :get_transaction_data
12
+
13
+ def self.buscar_dados_adicionais(braspag_id)
14
+ resp = get_additional_data(message: {
15
+ additionalDataRequest: {
16
+ RequestId: SecureRandom.uuid,
17
+ Version: "1.0",
18
+ MerchantId: BraspagRails.config['merchant_id'],
19
+ BraspagTransactionId: braspag_id
20
+ }
21
+ })
22
+ resp
23
+ end
24
+
25
+ def self.buscar_transacao(braspag_id)
26
+ resp = get_transaction_data(message: {
27
+ transactionDataRequest: {
28
+ RequestId: SecureRandom.uuid,
29
+ Version: "1.0",
30
+ MerchantId: BraspagRails.config['merchant_id'],
31
+ BraspagTransactionId: braspag_id
32
+ }
33
+ })
34
+ resp
35
+ end
36
+
37
+ def self.buscar_dados_cartao(braspag_id)
38
+ resp = get_credit_card_data(message: {
39
+ creditCardDataRequest: {
40
+ RequestId: SecureRandom.uuid,
41
+ Version: "1.0",
42
+ MerchantId: BraspagRails.config['merchant_id'],
43
+ BraspagTransactionId: braspag_id
44
+ }
45
+ })
46
+ resp
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,12 @@
1
+ require "rails/generators/base"
2
+
3
+ module BraspagRails
4
+ class InstallGenerator < ::Rails::Generators::Base
5
+ namespace "braspag:install"
6
+ source_root File.dirname(__FILE__) + "/../../templates"
7
+
8
+ def copy_configuration_file
9
+ copy_file "config.yml", "config/braspag.yml"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ module BraspagRails
2
+ class Railtie < Rails::Railtie
3
+ generators do
4
+ require "braspag_rails/generator"
5
+ end
6
+
7
+ rake_tasks do
8
+ load File.dirname(__FILE__) + "/../tasks/braspag.rake"
9
+ end
10
+
11
+ initializer "braspag_rails.initialize" do |app|
12
+ ::ActionView::Base.send(:include, BraspagRails::Helper)
13
+ ::ActionController::Base.send(:include, BraspagRails::ActionController)
14
+ end
15
+
16
+ end
17
+ end