All Projects → DenysXavier → WSBoletoSantander

DenysXavier / WSBoletoSantander

Licence: Apache-2.0 license
WS Boletos Santander são classes criadas para facilitar a integração entre aplicativos feitos em PHP e a geração de boletos online no banco Santander.

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to WSBoletoSantander

boletosimples-docs
Documentação da API do Boleto Simples - Sistema para emissão de boletos com registro
Stars: ✭ 23 (-46.51%)
Mutual labels:  santander, boleto, pagamento
GetnetSDK
GETNET - Todos os passos e processos referentes à integração com o sistema de captura e autorização de transações financeiras da Getnet via as funcionalidades da API.
Stars: ✭ 44 (+2.33%)
Mutual labels:  pagamento
Guzzle
Guzzle, an extensible PHP HTTP client
Stars: ✭ 21,384 (+49630.23%)
Mutual labels:  webservices
boletobr
Geração de Boleto Bancário e Remessa, Leitura de Retorno compatível com .NET versão 4.5 e posteriores.
Stars: ✭ 47 (+9.3%)
Mutual labels:  santander
Awesome Serverless
☁️ A curated list of awesome services, solutions and resources for serverless / nobackend applications.
Stars: ✭ 6,654 (+15374.42%)
Mutual labels:  webservices
JasperPHP-OpenBoleto
Um exemplo de uso de openboleto/openboleto em conjunto com QuilhaSoft/JasperPHP
Stars: ✭ 24 (-44.19%)
Mutual labels:  boleto
The-PHP-Workshop
A New, Interactive Approach to Learning PHP
Stars: ✭ 30 (-30.23%)
Mutual labels:  webservices
laravel-pix
Uma solucão simples para integrar sua aplicação Laravel a API PIX do Banco Central do Brasil
Stars: ✭ 73 (+69.77%)
Mutual labels:  pagamento
bradesco-boleto-registro
Sistema de registro online de boletos do Bradesco
Stars: ✭ 23 (-46.51%)
Mutual labels:  boleto
boleto
Billet generator for several Brazilian Banks for golang
Stars: ✭ 13 (-69.77%)
Mutual labels:  boleto
pix-payload-generator.net
Gerar payload para qrcode estático PIX. (Sistema de pagamento instantâneo do Brasil) Sem a necessidade de conexão com um PSP.
Stars: ✭ 23 (-46.51%)
Mutual labels:  pagamento
gn-api-sdk-node
SDK em NodeJS integrada a API Gerencianet. Esta SDK está preparada para integração à API Pix e API Boletos da Gerencianet, que lhe permite realizar o gerenciamento de cobranças Pix com QR Code e Pix Copia e Cola, boleto/Bolix, carnê, cartão de crédito e muito mais.
Stars: ✭ 33 (-23.26%)
Mutual labels:  boleto
site
RailroadPM.org 2.x Site
Stars: ✭ 18 (-58.14%)
Mutual labels:  webservices
Servicestack
Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all
Stars: ✭ 4,976 (+11472.09%)
Mutual labels:  webservices
gerar-boletos
Biblioteca em Node.js para geração de boletos utilizando PDFKit.
Stars: ✭ 81 (+88.37%)
Mutual labels:  santander
xmldsigjs
XMLDSIGjs provides an implementation of XMLDSIG in Typescript/Javascript based on WebCrypto
Stars: ✭ 27 (-37.21%)
Mutual labels:  webservices
picpay.py
Bíblioteca agnóstica para Integração com o gateway de pagamento da Picpay.
Stars: ✭ 35 (-18.6%)
Mutual labels:  pagamento
bbboletowebservice
Cliente WebService em PHP para registro de boletos no Banco do Brasil (BB)
Stars: ✭ 27 (-37.21%)
Mutual labels:  boleto
boletosimples-ruby
Biblioteca Ruby para API da Kobana
Stars: ✭ 15 (-65.12%)
Mutual labels:  boleto
py3dep
A part of HyRiver software stack for getting topography data within the US through 3D Elevation Program (3DEP)
Stars: ✭ 30 (-30.23%)
Mutual labels:  webservices

Build Status Coverage Status Latest Stable Version Total Downloads License
SensioLabsInsight

WSBoletoSantander

WS Boleto Santander é um conjunto de classes criadas para facilitar a integração entre aplicativos feitos em PHP e a geração de boletos online no banco Santander.

Índice

Funcionalidades

  • Inclusão/Registro de boletos
  • Sondagem de boletos registrados
  • Tratamento de erros de comunicação com o serviço do Santander

Requisitos

  • PHP 5.6 ou superior

Suporte para PHP 5.6 e 7.0 terminará em dezembro de 2018.

É fortemente recomendável que se migre para versões superiores.

Com as seguintes extensões ativas:

  • cURL
  • DOM
  • XmlWriter

Guia Básico de Uso

Instalação da Biblioteca

WS Boleto Santander pode ser instalado via Composer usando o comando:

composer require tiexpert/ws-boleto-santander

O Composer automaticamente verificará seu ambiente para determinar se seu servidor pode rodar a biblioteca WSBoletoSantander.

Montagem do Boleto

Para registrar o boleto serão necessárias as seguintes classes:

use TIExpert\WSBoletoSantander\Boleto;
use TIExpert\WSBoletoSantander\BoletoSantanderServico;
use TIExpert\WSBoletoSantander\ComunicadorCurlSOAP;
use TIExpert\WSBoletoSantander\Convenio;
use TIExpert\WSBoletoSantander\InstrucoesDeTitulo;
use TIExpert\WSBoletoSantander\Pagador;
use TIExpert\WSBoletoSantander\Titulo;

Agora, em seu script, defina o convênio.

$convenio = new Convenio();

Se o arquivo de configuração estiver já pronto, as informações de convênio já estarão corretas. Caso não, você pode definí-las agora.

$convenio->setCodigoBanco("0033");
$convenio->setCodigoConvenio("123456");

Então, defina as informações do pagador do boleto.

$pagador = new Pagador($tipoDoc, $numeroDoc, $nome, $endereco, $bairro, $cidade, $UF, $CEP);

Se não desejar instanciar Pagador já com os dados é possível. Pagador tem um construtor padrão sem argumentos e cada propriedade tem um método set para definir valor como, por exemplo, setNome, setCidade, setCEP,etc.

Por fim, um objeto composto que são as informações do título bancário.

Comece definindo as instruções do título.

$instrucoes = new InstrucoesDeTitulo();

As instruções mais corriqueiras são configuráveis via config.ini. Mas, todas as propriedades como $multa, $multarApos, $juros, $tipoDesconto, $valorDesconto, $dataLimiteDesconto, $valorAbatimento, $tipoProtesto, $protestarApos, $baixarApos tem métodos set.

Propriedades que são representações de data devem ser usadas instâncias de DateTime, ou uma string no formato "dmY". Exemplo: $instrucao->setDataLimiteDesconto("28032017"), ou seja, o desconto deve ser aplicado até 28/03/2017.

Enfim, usaremos essas instruções para compor as informações do título na classe Titulo.

$titulo = new Titulo($valor, $nossoNumero, $seuNumero, $dataVencimento, $mensagem, $dataEmissao, $especie, $instrucoes);

Assim como as demais classes, todas as propriedades têm seus respectivos set.

Importante salientar que toda instância de Título deve conter uma instância de InstrucoesDeTitulo. Caso contrário, um erro acontecerá na exportação do XML.

Agora, com todas as partes prontas, basta montar o boleto.

$boleto = new Boleto($convenio, $pagador, $titulo);

Registrando o Boleto

Com o boleto já montado, ou seja, com seus objetos e campos populados, deve-se fazer o registro em dois passos: solicitar um tíquete de registro de boleto e depois ratificá-lo.

Primeiramente, vamos preparar o serviço injetando um comunicador no cliente do serviço.

$comunicador = new ComunicadorCurlSOAP ();
$svc = new BoletoSantanderServico($comunicador);

Agora, devemos solicitar um tíquete com o método solicitarTicketInclusao.

Qualquer erro que o WebService retornar será lançado como um Exception pelo método.

$ticket = $svc->solicitarTicketInclusao($boleto);

Se nada deu errado, então, uma instância de Ticket é criada com uma autenticação de segurança do banco. Nesse momento, será necessário determinar um número sequencial único (NSU) que será a identificação de seu boleto. Para cada registro de boleto, este NSU deverá ser único por dia e por convênio, ou seja, não se pode usar o mesmo NSU no mesmo dia para o mesmo convênio.

$ticket->setNsu(1);

Com o tíquete pronto, basta passá-lo como parâmetro no método incluirTitulo.

$resultado = $svc->incluirTitulo($ticket);

Este método retorna true em caso de registro com sucesso, ou false. Embora, em casos de falha, o mais provável é que seja lançado um Exception com o motivo da falha.

Questões Importantes

Antes de qualquer tentativa de comunicação com o banco, deve-se primeiro pedir para eles cadastrarem seu certificado digital lá. Sem isso, não tem como o serviço do banco saber a autenticidade de quem o está requisitando.

Outra coisa, seu certificado digital também deve respeitar algumas regras.

Primeiro, ele deve ser do tipo cliente ou ambos, ou seja, ele deve de qualquer forma prover meios de comprovar sua identidade.

Aba de informações gerais do certificado

Além disso, seu certificado deve ter 4 informações importantes:

  1. O tamanho da chave chave-pública deve ser de 2048 bits.

Tamanho da chave-pública

  1. Deve conter número de série.

Chave Serial

  1. Possuir uma impressão digital.

Impressão Digital do Certificado

  1. E, um Common Name.

Common Name

Para facilitar o processo de comunicação com o serviço do Santander, é interessante baixar o certificado da CA deles, que atualmente é Entrust Root Certificate Authority—G2.

Ele pode ser encontrado aqui: https://www.entrust.com/get-support/ssl-certificate-support/root-certificate-downloads/

Também será necessário exportar seu certificado digital para o formato PEM.

Com ambos os arquivos, configure-os no arquivo config.ini do WSBoletoSantander.

Exemplo:

[certificado]
arquivo = "/var/www/html/meu_certificado_digital.pem"
senha = "Senha do meu certificado"
tipo_arquivo = "PEM"
arquivo_ca = "/var/www/html/entrust_g2_ca.cer"

Mais Documentação

Em breve, na Wiki do projeto.

Licença

WS Boleto Santander é distribuído sob a Licença Apache 2.0 e não pode ser usado de forma diferente que a expressa por essa licença.

Maiores informações, acesse http://www.apache.org/licenses/LICENSE-2.0.

Aviso Legal

O autor deste projeto não tem nenhuma afiliação, vínculo ou qualquer outra relação com o banco Santander S.A.

O software é oferecido aqui "como está" e nenhuma garantia é proferida. Portanto, o uso deste software é de inteira responsabilidade do utilizador.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].