2015-02-09 41 views
0

我們有一種情況,需要在兩個單獨的Docusign帳戶中檢查信封狀態。如果我們沒有得到第一個地位,我們想檢查第二個。如何使用不同憑據重新初始化Docusign PHP API

我無法讓API用我們的第二個帳戶的憑據重新初始化。我用這個新變量調用這個片段:

require_once('docusign/SignatureApi.php'); 
$IntegratorsKey = "abcd"; 
$UserID = "[email protected]"; 
$Password = "xxxxx"; 
$_apiEndpoint = $Endpoint; 
$_apiWsdl = "docusign/api/APIService.wsdl"; 
$api_options = array('location'=>$_apiEndpoint,'trace'=>true,'features' => SOAP_SINGLE_ELEMENT_ARRAYS); 
$api = new APIService($_apiWsdl, $api_options); 
$api->setCredentials("[" . $IntegratorsKey . "]" . $UserID, $Password); 

$res = RequestEnvelopStatuses($envelopes); 
$envelopeStatuses = $res->RequestStatusesResult; 

if(!count($envelopeStatuses->EnvelopeStatuses->EnvelopeStatus)){ 
    // If we did not find envelopes, check other account 
    $IntegratorsKey = "wxyz"; 
    $UserID = "[email protected]"; 
    $Password = "xxxxx"; 
    $api->setCredentials("[" . $IntegratorsKey . "]" . $UserID, $Password); 
    // retry request 
    $res = RequestEnvelopStatuses($envelopes); 
    $envelopeStatuses = $res->RequestStatusesResult; 
} 

它不返回錯誤,但不會返回信封狀態。它似乎仍然使用第一個憑據(猜測)。第二次嘗試似乎總是返回任何第一次嘗試。

有沒有更好的/首選的方法來做到這一點?

+0

你能展示更多的代碼嗎?顯示第一個調用API,第二個導致你的麻煩 – 2015-02-09 22:10:16

+0

@greg_diesel完成 – Fook 2015-02-09 22:34:45

+0

你剛剛嘗試實例化另一個對象而不是重複使用'$ api'? $ envelopepes定義在哪裏?看起來如果你調用相同的'RequestEnvelopeStatuses'而不改變這個值,你會得到相同的結果? – 2015-02-09 22:42:56

回答

2

這看起來不像獲得信封狀態的正確方法。也許這就是爲什麼你沒有找到他們,並試圖再次看?

// Create a filter using account ID and today as a start time 
$envStatusFilter = new EnvelopeStatusFilter(); 
$envStatusFilter->AccountId = $AccountID; 
$beginDateTime = new EnvelopeStatusFilterBeginDateTime(); 
$beginDateTime->_ = todayXsdDate(); // note that this helper function 
            // is in CodeSnippets/include/utils.php 
            // in the PHP SDK 
$envStatusFilter->BeginDateTime = $beginDateTime; 

// Send 
$requestStatusesparams = new RequestStatuses(); 
$requestStatusesparams->EnvelopeStatusFilter = $envStatusFilter; 
$response = $api->RequestStatuses($requestStatusesparams);