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 }