github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/bb/request.go (about)

     1  package bb
     2  
     3  /*
     4  @author Philippe Moneda
     5  @date 10/04/2017
     6  Descreve o padrão de mensagem para Boletos do Banco do Brasil
     7  */
     8  const authBB = `## Content-Type:application/x-www-form-urlencoded
     9  ## Cache-Control:no-cache
    10  ## Authorization:Basic {{base64 (concat .Authentication.Username ":" .Authentication.Password)}}
    11  grant_type=client_credentials&scope=cobranca.registro-boletos`
    12  
    13  const authLetterBBResponse = `
    14  {
    15  	"access_token":"{{authToken}}"	
    16  }
    17  `
    18  
    19  //GetBBAuthLetters retorna as cartas de envio e retorno de autencação do BB
    20  func GetBBAuthLetters() (string, string) {
    21  	return authBB, authLetterBBResponse
    22  }
    23  
    24  const registerBoleto = `
    25   ## SOAPACTION:registrarBoleto
    26   ##	Authorization:Bearer {{.Authentication.AuthorizationToken}}
    27   ## Content-Type:text/xml; charset=utf-8
    28  
    29   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://www.tibco.com/schemas/bws_registro_cbr/Recursos/XSD/Schema.xsd">
    30   <soapenv:Header/>
    31   <soapenv:Body>
    32  <sch:requisicao>
    33   <sch:numeroConvenio>{{.Agreement.AgreementNumber}}</sch:numeroConvenio>
    34   <sch:numeroCarteira>17</sch:numeroCarteira>
    35   <sch:numeroVariacaoCarteira>{{.Agreement.WalletVariation}}</sch:numeroVariacaoCarteira>
    36   <sch:codigoModalidadeTitulo>1</sch:codigoModalidadeTitulo>
    37   <sch:dataEmissaoTitulo>{{replace (today | brdate) "/" "."}}</sch:dataEmissaoTitulo>
    38   <sch:dataVencimentoTitulo>{{replace (.Title.ExpireDateTime | brdate) "/" "."}}</sch:dataVencimentoTitulo>
    39   <sch:valorOriginalTitulo>{{toFloatStr .Title.AmountInCents}}</sch:valorOriginalTitulo>
    40   <sch:codigoTipoDesconto>0</sch:codigoTipoDesconto> 
    41   <sch:codigoTipoMulta>0</sch:codigoTipoMulta> 
    42   <sch:codigoAceiteTitulo>N</sch:codigoAceiteTitulo>
    43   <sch:codigoTipoTitulo>{{.Title.BoletoTypeCode}}</sch:codigoTipoTitulo>
    44   <sch:textoDescricaoTipoTitulo></sch:textoDescricaoTipoTitulo>
    45   <sch:indicadorPermissaoRecebimentoParcial>N</sch:indicadorPermissaoRecebimentoParcial>
    46   <sch:textoNumeroTituloBeneficiario>{{.Title.DocumentNumber}}</sch:textoNumeroTituloBeneficiario>
    47   <sch:textoNumeroTituloCliente>000{{padLeft (toString .Agreement.AgreementNumber) "0" 7}}{{padLeft (toString .Title.OurNumber) "0" 10}}</sch:textoNumeroTituloCliente>
    48   <sch:textoMensagemBloquetoOcorrencia>Pagamento disponível até a data de vencimento</sch:textoMensagemBloquetoOcorrencia>
    49   <sch:codigoTipoInscricaoPagador>{{docType .Buyer.Document}}</sch:codigoTipoInscricaoPagador>
    50   <sch:numeroInscricaoPagador>{{clearString (truncate .Buyer.Document.Number 15)}}</sch:numeroInscricaoPagador>
    51   <sch:nomePagador>{{clearString (truncate .Buyer.Name 60)}}</sch:nomePagador>
    52   <sch:textoEnderecoPagador>{{clearString (truncate .Buyer.Address.Street 60)}}</sch:textoEnderecoPagador>
    53   <sch:numeroCepPagador>{{extractNumbers .Buyer.Address.ZipCode}}</sch:numeroCepPagador>
    54   <sch:nomeMunicipioPagador>{{clearString (truncate .Buyer.Address.City 20)}}</sch:nomeMunicipioPagador>
    55   <sch:nomeBairroPagador>{{clearString (truncate .Buyer.Address.District 20)}}</sch:nomeBairroPagador>
    56   <sch:siglaUfPagador>{{clearString (truncate .Buyer.Address.StateCode 2)}}</sch:siglaUfPagador> 
    57   <sch:codigoChaveUsuario>1</sch:codigoChaveUsuario>
    58   <sch:codigoTipoCanalSolicitacao>5</sch:codigoTipoCanalSolicitacao>
    59   </sch:requisicao>
    60   </soapenv:Body>
    61  </soapenv:Envelope>
    62   `
    63  
    64  //getRequest retorna o template do Banco do Brasil
    65  func getRequest() string {
    66  	return registerBoleto
    67  }
    68  
    69  const registerBoletoBBResponse = `
    70  
    71  <?xml version="1.0" encoding="UTF-8"?>
    72  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    73  <SOAP-ENV:Body>
    74  	<ns0:resposta xmlns:ns0="http://www.tibco.com/schemas/bws_registro_cbr/Recursos/XSD/Schema.xsd">
    75  		<ns0:siglaSistemaMensagem />
    76  		<ns0:codigoRetornoPrograma>{{returnCode}}</ns0:codigoRetornoPrograma>
    77  		<ns0:nomeProgramaErro>{{errorCode}}</ns0:nomeProgramaErro>
    78  		<ns0:textoMensagemErro>{{errorMessage}}</ns0:textoMensagemErro>
    79  		<ns0:linhaDigitavel>{{digitableLine}}</ns0:linhaDigitavel>
    80  		<ns0:codigoBarraNumerico>{{barcodeNumber}}</ns0:codigoBarraNumerico>				
    81  	</ns0:resposta>
    82  </SOAP-ENV:Body>
    83  </SOAP-ENV:Envelope>
    84  
    85  `
    86  
    87  func getResponseBB() string {
    88  	return registerBoletoBBResponse
    89  }