Sample code for 30+ languages & platforms
Visual FoxPro

DocuSign Download Envelope Document (PDF)

See more DocuSign Examples

Retrieves the specified document from the envelope. The response body of this method is the PDF file as a byte stream. You can get the file name and document ID from the response's Content-Disposition header.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJsonToken
LOCAL lcUrl
LOCAL loBd
LOCAL lnRespStatusCode
LOCAL loMime
LOCAL lcFilename
LOCAL loSbPath

lnSuccess = 0

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat.Http')

* Implements the following HTTP request:
* GET /restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/1

* Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
loJsonToken = CreateObject('Chilkat.JsonObject')
* Load a previously obtained OAuth2 access token.
lnSuccess = loJsonToken.LoadFile("qa_data/tokens/docusign.json")
IF (lnSuccess = 0) THEN
    ? loJsonToken.LastErrorText
    RELEASE loHttp
    RELEASE loJsonToken
    CANCEL
ENDIF

loHttp.AuthToken = loJsonToken.StringOf("access_token")

* Use your account ID and a valid envelopeId here:
loHttp.SetUrlVar("accountId","7f3f65ed-5e87-418d-94c1-92499ddc8252")
loHttp.SetUrlVar("envelopeId","90d7e40a-b4bd-4ccd-bf38-c80e37954a13")

lcUrl = "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents/1"
loBd = CreateObject('Chilkat.BinData')

lnSuccess = loHttp.DownloadBd(lcUrl,loBd)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJsonToken
    RELEASE loBd
    CANCEL
ENDIF

lnRespStatusCode = loHttp.LastStatus
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode <> 200) THEN
    ? "Response Header:"
    ? loHttp.LastResponseHeader
    * The response body contains an error message.
    ? loBd.GetString("utf-8")
    ? "Failed."
    RELEASE loHttp
    RELEASE loJsonToken
    RELEASE loBd
    CANCEL
ENDIF

* The response indicated success.
* Get the filename from the Content-Disposition header and save to a file.
loMime = CreateObject('Chilkat.Mime')
loMime.LoadMime(loHttp.LastResponseHeader)

lcFilename = loMime.GetHeaderFieldAttribute("Content-Disposition","filename")
? "filename = " + lcFilename

loSbPath = CreateObject('Chilkat.StringBuilder')
loSbPath.Append("C:/aaworkarea/")
loSbPath.Append(lcFilename)
lnSuccess = loBd.WriteFile(loSbPath.GetAsString())
IF (lnSuccess = 0) THEN
    ? "Failed to save to output file."
ELSE
    ? "Wrote " + loSbPath.GetAsString()
ENDIF

RELEASE loHttp
RELEASE loJsonToken
RELEASE loBd
RELEASE loMime
RELEASE loSbPath