2016-11-14 39 views
0

****編輯:感謝這些鏈接,@Hackerman。我能夠在Postman中使用Docusign郵遞員樣本,然後在Powershell中使用它。但是我無法使用我自己的PDF文檔。我懷疑這是因爲我沒有正確地將我的PDF轉換爲Base64。任何人都知道如何可以通過PowerShell的****完成」PDF文件的驗證失敗。「當試圖通過電子郵件發送簽名請求 - docusign

EDIT2:?是能夠通過PowerShell來編碼我的PDF文件爲Base64這個簡單的1班輪 $ docEncodedBase64 = [轉換] :: ToBase64String((獲取 - 內容$ PDFPath -Encoding字節))

我們試圖使用Powershell 5.0(和invoke-restmethod cmdlet)向docusign REST API發出請求,以便通過電子郵件發送簽名請求。

在我的測試中,我一直在關注這個指南:https://docs.docusign.com/esign/guide/usage/request_a_signature.html#prepare-the-document-to-send-through-docusign但我得到一個錯誤,當我把我的POST請求

我們要一個正常的請求(即,不是多部分請求)的路徑,從而以base64編碼格式的字節形式提供PDF文檔作爲documentBase64屬性的值。

這裏是我的代碼的PDF轉換爲Base64字節:

# PDF document 
$docContent = Get-Content 'Mutual_NDA.pdf' 

# PDF as bytes 
$docBytes = [System.Text.Encoding]::Unicode.GetBytes($docContent) 

# PDF as Base-64 Encoded bytes 
$docEncoded = [System.Convert]::ToBase64String($docBytes) 

然後我定義我的JSON有效載荷,這將作爲POST請求的正文中發送。在這裏,我將'documentBase64'屬性設置爲上面剛剛轉換的base64編碼的字符串。

# JSON payload 
$jsonPayload = @" 
{ 
    "documents": [ 
     { 
      **"documentBase64": "$docEncoded"**, 
      "documentId": "1", 
      "fileExtension": "pdf", 
      "name": "Mutual_NDA.pdf"   
     } 
    ], 
    "emailSubject": "Please sign the NDA", 
    "recipients": { 
     "signers": [ 
      { 
       "email": "[email protected]", 
       "name": "Darlene Petersen", 
       "recipientId": "1", 
       "routingOrder": "1", 
       "tabs": { 
        "dateSignedTabs": [ 
         { 
          "anchorString": "signer1date", 
          "anchorYOffset": "-6", 
          "fontSize": "Size12", 
          "name": "Date Signed", 
          "recipientId": "1", 
          "tabLabel": "date_signed" 
         } 
        ], 
        "fullNameTabs": [ 
         { 
          "anchorString": "signer1name", 
          "anchorYOffset": "-6", 
          "fontSize": "Size12", 
          "name": "Full Name", 
          "recipientId": "1", 
          "tabLabel": "Full Name"  
         } 
        ], 
        "signHereTabs": [ 
         { 
          "anchorString": "signer1sig", 
          "anchorUnits": "mms", 
          "anchorXOffset": "0", 
          "anchorYOffset": "0", 
          "name": "Please sign here", 
          "optional": "false", 
          "recipientId": "1", 
          "scaleValue": 1, 
          "tabLabel": "signer1sig" 
         } 
        ] 
       } 
      } 
     ] 
    }, 
    "status": "sent"     
} 
"@ 

最後,HTTP請求:

$Envelope = Invoke-RestMethod -uri ($BaseURL + '/envelopes') -Method Post -Body $jsonPayload -ContentType 'application/json' -Headers @{"X-Docusign-Authentication" = $XMLHeader} 

任何人有這方面的經驗?也許我錯誤地將PDF編碼爲base64?我真的被卡住了。任何幫助感謝! 謝謝,

埃裏克

+0

只是爲了測試目的...你可以建立:) – Hackerman

+0

使用像'Postman',一旦你有一個工作負載,端口邏輯另一個工具PowerShell中的有效載荷什麼錯誤??? – 4c74356b41

+0

「錯誤碼」:「PDF_VALIDATION_FAILED」, 「消息」:「PDF文件的驗證失敗。」 – Quanda

回答

0

我的PDF沒有正確轉換爲Base64編碼。在PowerShell中使用此行的代碼,我是能夠成功地創建併發送一個信封

$docEncodedBase64 = [Convert]::ToBase64String((Get-Content $PDFPath -Encoding Byte)) 

感謝@Hackerman用於引用郵差!

相關問題