forked from wirecardBrasil/bank-account-validator-js
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bank Account validator from Moip SDK JS
- Loading branch information
1 parent
5b4d7b9
commit eda6d06
Showing
33 changed files
with
2,326 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
/node_modules/* | ||
/build/* | ||
/.grunt/* | ||
/cov/* | ||
|
||
_SpecRunner.html | ||
|
||
.todo | ||
*.swp | ||
.idea | ||
.DS_Store |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,137 @@ | ||
module.exports = function (grunt) { | ||
|
||
grunt.initConfig({ | ||
pkg: grunt.file.readJSON('package.json'), | ||
banner: '<%= pkg.name %>-<%= pkg.version %>.js', | ||
|
||
jshint : { | ||
all: ['src/**/*.js'] | ||
}, | ||
|
||
jasmine: { | ||
options: { | ||
src: "src/**/*.js", | ||
specs: "spec/**/*.js", | ||
helpers: "spec/helpers/*.js", | ||
vendor: ["lib/jsencrypt.min.js"], | ||
}, | ||
coverage: { | ||
src: '<%= jasmine.options.src %>', | ||
options: { | ||
specs: '<%= jasmine.options.specs %>', | ||
template: require('grunt-template-jasmine-istanbul'), | ||
templateOptions: { | ||
coverage: 'cov/coverage.json', | ||
report: [ | ||
{ | ||
type: 'html', | ||
options: { | ||
dir: 'cov/html' | ||
} | ||
}, | ||
{ | ||
type: 'cobertura', | ||
options: { | ||
dir: 'cov/cobertura' | ||
} | ||
}, | ||
{ | ||
type: 'text-summary' | ||
} | ||
] | ||
} | ||
} | ||
} | ||
}, | ||
|
||
concat: { | ||
dist: { | ||
src: ["lib/jsencrypt.min.js", "src/**/*.js"], | ||
dest: 'build/<%= pkg.name %>.js', | ||
}, | ||
options: { | ||
stripBanners: true, | ||
stripFooters: true, | ||
}, | ||
}, | ||
|
||
uglify: { | ||
options: { | ||
banner: '/*! <%= banner %> - build date: <%= grunt.template.today("yyyy-mm-dd") %> */\n' | ||
}, | ||
build: { | ||
src: 'build/<%= pkg.name %>.js', | ||
dest: 'build/<%= pkg.name %>.min.js' | ||
} | ||
}, | ||
|
||
copy: { | ||
version: { | ||
src: 'build/<%= pkg.name %>.min.js', | ||
dest: 'build/<%= pkg.name %>-<%= pkg.version %>.min.js' | ||
}, | ||
dist: { | ||
src: 'build/<%= pkg.name %>.min.js', | ||
dest: 'dist/<%= pkg.name %>-<%= pkg.version %>.min.js' | ||
}, | ||
lastest: { | ||
src: 'build/<%= pkg.name %>.min.js', | ||
dest: 'dist/<%= pkg.name %>.min.js' | ||
} | ||
}, | ||
|
||
bump: { | ||
options: { | ||
files: ['package.json'], | ||
updateConfigs: [], | ||
commit: true, | ||
commitMessage: 'Release v%VERSION%', | ||
commitFiles: ['package.json'], | ||
createTag: true, | ||
tagName: 'v%VERSION%', | ||
tagMessage: 'Version %VERSION%', | ||
push: true, | ||
pushTo: 'origin', | ||
gitDescribeOptions: '--tags --always --abbrev=1 --dirty=-d', | ||
globalReplace: false, | ||
prereleaseName: false, | ||
regExp: false | ||
} | ||
} | ||
}); | ||
|
||
grunt.loadNpmTasks('grunt-contrib-jshint'); | ||
grunt.loadNpmTasks('grunt-contrib-jasmine'); | ||
grunt.loadNpmTasks('grunt-contrib-concat'); | ||
grunt.loadNpmTasks('grunt-contrib-uglify'); | ||
grunt.loadNpmTasks('grunt-contrib-copy'); | ||
grunt.loadNpmTasks('grunt-bump'); | ||
grunt.loadNpmTasks('grunt-aws'); | ||
|
||
//********************** | ||
// Private task (auxiliar) | ||
//********************** | ||
grunt.registerTask('refresh', 'Refresh data from package.json', function() { | ||
grunt.config.set('pkg', grunt.file.readJSON('./package.json')); | ||
}); | ||
|
||
//********************** | ||
// Public tasks | ||
//********************** | ||
grunt.registerTask('default', ['jshint','jasmine'] ); | ||
grunt.registerTask('build', ['default', 'concat', 'uglify', 'copy:version', 'copy:dist', 'copy:lastest']); | ||
|
||
//********************** | ||
// Final task (publish lib) | ||
//********************** | ||
grunt.registerTask('release', 'Release bank-account-validator.js', function(verTarget) { | ||
if (verTarget == null){ | ||
grunt.fail.fatal('Specify release level: release:patch, release:minor, release:major'); | ||
} | ||
if (!(verTarget == 'patch' || verTarget == 'minor' || verTarget == 'major')) { | ||
grunt.fail.fatal('Specify release level: release:patch, release:minor, release:major'); | ||
} | ||
grunt.task.run(['build', 'bump-only:'+verTarget, 'refresh', 'build']); | ||
}); | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,113 @@ | ||
# bank-account-validator-js | ||
Validador de contas bancárias em JavaScript | ||
# Validador de contas bancárias | ||
|
||
Projeto em construção. Por enquanto, siga as instruções a partir do projeto moip-sdk-js https://github.com/moip/moip-sdk-js#validação-de-conta-bancária | ||
A validação da conta bancária é realizada sobre as regras dos seguintes bancos: Itaú, Bradesco, Banco do Brasil, Santander, Citibank e HSBC. Para os outros bancos é realizada uma validação padrão: | ||
* Agência de 1 até 5 números | ||
* Dígito da agência de 0 a 2 caracteres | ||
* Conta corrente de 1 até 12 números | ||
* Dígito da conta corrente de 0 a 2 caracteres | ||
|
||
O número da agência e conta corrente dos bancos Itaú, Bradesco, e Banco do Brasil são validados através do cálculo do dígito verificador (semelhante a validação do CPF). | ||
|
||
### Validador de conta bancária on-line | ||
Você pode realizar a validação a qualquer momento através do site: | ||
http://validadorbanco.com.br | ||
|
||
# Implementação a validação em seu site | ||
|
||
Para um funcionamento inicial, copie o trecho de código abaixo para sua página HTML. | ||
|
||
|
||
```html | ||
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.3.min.js"></script> | ||
<script type="text/javascript" src="https://cdn.rawgit.com/moip/bank-account-validator-js/master/dist/bank-account-validator.min.js"></script> | ||
<script type="text/javascript"> | ||
$(document).ready(function() { | ||
$("#validate_bank_account").click(function() { | ||
Moip.BankAccount.validate({ | ||
bankNumber : $("#bank_number").val(), | ||
agencyNumber : $("#agency_number").val(), | ||
agencyCheckNumber : $("#agency_check_number").val(), | ||
accountNumber : $("#account_number").val(), | ||
accountCheckNumber : $("#account_check_number").val(), | ||
valid: function() { | ||
alert("Conta bancária válida") | ||
}, | ||
invalid: function(data) { | ||
var errors = "Conta bancária inválida: \n"; | ||
for(i in data.errors){ | ||
errors += data.errors[i].description + "-" + data.errors[i].code + ")\n"; | ||
} | ||
alert(errors); | ||
} | ||
}); | ||
}); | ||
}); | ||
</script> | ||
<form> | ||
<select id="bank_number"> | ||
<option value="001">BANCO DO BRASIL S.A.</option> | ||
<option value="237">BANCO BRADESCO S.A.</option> | ||
<option value="341">BANCO ITAÚ S.A.</option> | ||
<option value="104">CAIXA ECONOMICA FEDERAL</option> | ||
<option value="033">BANCO SANTANDER BANESPA S.A.</option> | ||
<option value="399">HSBC BANK BRASIL S.A.</option> | ||
<option value="151">BANCO NOSSA CAIXA S.A.</option> | ||
<option value="745">BANCO CITIBANK S.A.</option> | ||
</select> | ||
|
||
<input id="agency_number" placeholder="Agência" type="text"/> | ||
<input id="agency_check_number" placeholder="Dígito da agência" type="text" /> | ||
<input id="account_number" placeholder="Conta corrente" type="text" /> | ||
<input id="account_check_number" placeholder="Dígito da conta corrente" type="text" /> | ||
|
||
<input type="button" value="Validar" id="validate_bank_account" /> | ||
</form> | ||
``` | ||
|
||
Lembrando que se estiver em ambiente de desenvolvimento é recomendável utilizar o arquivo validator.html. | ||
|
||
### Tratamento de erros | ||
Estes são os códigos de erro retornados quando uma conta bancária inválida é informada. Estas mensagens podem ser retornadas quando uma conta bancária do ITAÚ está totalmente inválida: | ||
* INVALID_AGENCY_NUMBER: A agência deve conter 4 números. Complete com zeros a esquerda se necessário | ||
* INVALID_AGENCY_CHECK_NUMBER: Dígito da agência inválido | ||
* INVALID_ACCOUNT_NUMBER: A conta corrente deve conter 5 números. Complete com zeros a esquerda se necessário | ||
* INVALID_ACCOUNT_CHECK_NUMBER: Dígito da conta corrente inválido | ||
* AGENCY_CHECK_NUMBER_DONT_MATCH: Dígito da agência não corresponde ao número da agência preenchido | ||
* ACCOUNT_CHECK_NUMBER_DONT_MATCH: Dígito da conta não corresponde ao número da conta/agência preenchido | ||
* INVALID_BANK_NUMBER: Banco inválido (quando o código do banco não possui entre 3 e 5 dígitos) | ||
|
||
### Código dos bancos | ||
|
||
A listagem de todos os bancos você pode obter em http://www.codigobanco.com. | ||
|
||
# Contribuindo | ||
|
||
Após realizar as mudanças do projeto, ou caso queira apenas executar o projeto localmente: | ||
|
||
### Instalação de dependências | ||
``` javascript | ||
%> npm install | ||
``` | ||
|
||
### Testes unitários | ||
``` javascript | ||
%> grunt | ||
``` | ||
|
||
### Build | ||
``` javascript | ||
%> grunt build | ||
``` | ||
|
||
### Executando a validação no browser | ||
Após executar o build, basta abrir o arquivo validator.html no seu browser. | ||
|
||
### Release (gera uma nova versão major/minor/patch) | ||
Por exemplo, para a correção de um bug alterando a versão de 1.0.0 para 1.0.1, o comando seria: | ||
``` javascript | ||
%> grunt release:patch | ||
``` | ||
|
||
Após este comando: | ||
- Arquivo com a nova versão será gerado em dist/bank-account-validator-MAJOR.MINOR.PATCH.min.js | ||
- A nova versão ficará registrada no package.json no campo "version" |
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.