Visual FoxPro
Visual FoxPro
Send POST to Bradesco Platform with Billing Ticket for Registration
See more HTTP Misc Examples
Sends a POST request to the Bradesco platform containing the JSON data of the Billing Ticket for registration.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loJson
LOCAL loCert
LOCAL loCrypt
LOCAL lcSigBase64
LOCAL lcUrl
LOCAL loReq
LOCAL loHttp
LOCAL loResp
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
* First build the JSON containing the data to be sent.
* {
* "nuCPFCNPJ":"12668",
* "filialCPFCNPJ":"1",
* "ctrlCPFCNPJ":"59",
* "cdTipoAcesso":"2",
* "idProduto":"9",
* "nuNegociacao":"262200000000005577",
* "nuCliente":"SEU_NUM_CLIENTE",
* "dtEmissaoTitulo":"21.09.2016",
* "dtVencimentoTitulo":"21.09.2016",
* "vlNominalTitulo":"888888",
* "cdEspecieTitulo":"2",
* "nomePagador":"NOME DO PAGADOR",
* "logradouroPagador":"ENDERECO DO PAGADOR",
* "nuLogradouroPagador":"1145",
* "complementoLogradouroPagador":"APTO 34",
* "cepPagador":"5588",
* "complementoCepPagador":"1",
* "bairroPagador":"BAIRRO PAGADOR",
* "municipioPagador":"MUNICIPIO PAGADOR",
* "ufPagador":"SP",
* "cdIndCpfcnpjPagador":"2",
* "nuCpfcnpjPagador":"12668000159",
* "endEletronicoPagador":"PAGADOR@BRADESCO.COM.BR",
* "nomeSacadorAvalista":"NOME SACADOR AVALISTA",
* "logradouroSacadorAvalista":"ENDERECO SACADOR AVALISTA",
* "nuLogradouroSacadorAvalista":"5555",
* "complementoLogradouroSacadorAvalista":"BLOCO 23",
* "cepSacadorAvalista":"6182",
* "complementoCepSacadorAvalista":"160",
* "bairroSacadorAvalista":"BAIRRO SACADOR AVALISTA",
* "municipioSacadorAvalista":"MUNICIPIO SACADOR AVALISTA",
* "ufSacadorAvalista":"SP",
* "cdIndCpfcnpjSacadorAvalista":"2",
* "nuCpfcnpjSacadorAvalista":"12668000159",
* "endEletronicoSacadorAvalista":"SACADOR@BRADESCO.COM.BR",
* }
*
loJson = CreateObject('Chilkat.JsonObject')
loJson.UpdateString("nuCPFCNPJ","12668")
loJson.UpdateString("filialCPFCNPJ","1")
loJson.UpdateString("ctrlCPFCNPJ","59")
loJson.UpdateString("cdTipoAcesso","2")
loJson.UpdateString("idProduto","9")
loJson.UpdateString("nuNegociacao","262200000000005577")
loJson.UpdateString("nuCliente","SEU_NUM_CLIENTE")
loJson.UpdateString("dtEmissaoTitulo","21.09.2016")
loJson.UpdateString("dtVencimentoTitulo","21.09.2016")
loJson.UpdateString("vlNominalTitulo","888888")
loJson.UpdateString("cdEspecieTitulo","2")
loJson.UpdateString("nomePagador","NOME DO PAGADOR")
loJson.UpdateString("logradouroPagador","ENDERECO DO PAGADOR")
loJson.UpdateString("nuLogradouroPagador","1145")
loJson.UpdateString("complementoLogradouroPagador","APTO 34")
loJson.UpdateString("cepPagador","5588")
loJson.UpdateString("complementoCepPagador","1")
loJson.UpdateString("bairroPagador","BAIRRO PAGADOR")
loJson.UpdateString("municipioPagador","MUNICIPIO PAGADOR")
loJson.UpdateString("ufPagador","SP")
loJson.UpdateString("cdIndCpfcnpjPagador","2")
loJson.UpdateString("nuCpfcnpjPagador","12668000159")
loJson.UpdateString("endEletronicoPagador","PAGADOR@BRADESCO.COM.BR")
loJson.UpdateString("nomeSacadorAvalista","NOME SACADOR AVALISTA")
loJson.UpdateString("logradouroSacadorAvalista","ENDERECO SACADOR AVALISTA")
loJson.UpdateString("nuLogradouroSacadorAvalista","5555")
loJson.UpdateString("complementoLogradouroSacadorAvalista","BLOCO 23")
loJson.UpdateString("cepSacadorAvalista","6182")
loJson.UpdateString("complementoCepSacadorAvalista","160")
loJson.UpdateString("bairroSacadorAvalista","BAIRRO SACADOR AVALISTA")
loJson.UpdateString("municipioSacadorAvalista","MUNICIPIO SACADOR AVALISTA")
loJson.UpdateString("ufSacadorAvalista","SP")
loJson.UpdateString("cdIndCpfcnpjSacadorAvalista","2")
loJson.UpdateString("nuCpfcnpjSacadorAvalista","12668000159")
loJson.UpdateString("endEletronicoSacadorAvalista","SACADOR@BRADESCO.COM.BR")
* Load out PFX file
loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
IF (lnSuccess = 0) THEN
? loCert.LastErrorText
RELEASE loJson
RELEASE loCert
CANCEL
ENDIF
loCrypt = CreateObject('Chilkat.Crypt2')
lnSuccess = loCrypt.SetSigningCert(loCert)
IF (lnSuccess = 0) THEN
? loCrypt.LastErrorText
RELEASE loJson
RELEASE loCert
RELEASE loCrypt
CANCEL
ENDIF
* Use SHA-256 within the signing..
loCrypt.HashAlgorithm = "sha256"
* Use no authenticated attributes
loCrypt.SigningAttributes = "{}"
loJson.EmitCompact = 1
lcSigBase64 = loCrypt.OpaqueSignStringENC(loJson.Emit())
IF (loCrypt.LastMethodSuccess = 0) THEN
? loCrypt.LastErrorText
RELEASE loJson
RELEASE loCert
RELEASE loCrypt
CANCEL
ENDIF
* Next, we need to send a POST to the following URL where the body of the POST
* contains the binary PKCS7 signature (which embeds the JSON).
lcUrl = "https://cobranca.bradesconetempresa.b.br/ibpjregistrotitulows/registrotitulohomologacao"
loReq = CreateObject('Chilkat.HttpRequest')
loReq.HttpVerb = "POST"
* This is strange because apparently the server wants a "text/xml" Content-Type,
* but the content in the body is not actually XML, it's binary PKCS7.
loReq.ContentType = "text/xml"
loReq.LoadBodyFromString(lcSigBase64,"utf-8")
* We don't actually pass the URL, we set the path here, and the domain is passed below..
loReq.Path = "/ibpjregistrotitulows/registrotitulohomologacao"
loHttp = CreateObject('Chilkat.Http')
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpSReq("cobranca.bradesconetempresa.b.br",443,1,loReq,loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loJson
RELEASE loCert
RELEASE loCrypt
RELEASE loReq
RELEASE loHttp
RELEASE loResp
CANCEL
ENDIF
? "Response status code: " + STR(loResp.StatusCode)
? "Response body:"
? loResp.BodyStr
RELEASE loJson
RELEASE loCert
RELEASE loCrypt
RELEASE loReq
RELEASE loHttp
RELEASE loResp