2013-09-17 4 views
1

Я тестировал DocuSign PHP API и пытаюсь следующий код:DocuSign: Один или оба имени пользователя и пароля являются недействительными

$envelopeId = '3e979aac-1d8d-4ab9-rand-envelopid'; 

    $api = new APIService(); 
    $api->setCredentials('devaccountemail', 'devaccountpassword'); 

    $userName = 'Test Signer'; 
    $userEmail = '[email protected]'; 
    $userId = '457'; 

    $RequestRecipientTokenParams = new RequestRecipientToken(); 
    $RequestRecipientTokenParams->EnvelopeID = $envelopeId; 
    $RequestRecipientTokenParams->Username = $userName; 
    $RequestRecipientTokenParams->Email = $userEmail; 
    $RequestRecipientTokenParams->ClientUserID = $userId; 

    $RequestRecipientTokenParams->AuthenticationAssertion->AssertionID = rand(0, 999); 
    $RequestRecipientTokenParams->AuthenticationAssertion->AuthenticationInstant = date("Y")."-".date("m")."-".date("d")."T00:00:00.00"; 
    $RequestRecipientTokenParams->AuthenticationAssertion->AuthenticationMethod = RequestRecipientTokenAuthenticationAssertionAuthenticationMethod::Email; 
    $RequestRecipientTokenParams->AuthenticationAssertion->SecurityDomain = "local IP Address"; 


    $RequestRecipientTokenParams->ClientURLs->OnAccessCodeFailed = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnAccessCodeFailed"; 
    $RequestRecipientTokenParams->ClientURLs->OnCancel = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnCancel"; 
    $RequestRecipientTokenParams->ClientURLs->OnDecline = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnDecline"; 
    $RequestRecipientTokenParams->ClientURLs->OnException = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnException"; 
    $RequestRecipientTokenParams->ClientURLs->OnFaxPending = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnFaxPending"; 
    $RequestRecipientTokenParams->ClientURLs->OnIdCheckFailed = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnIdCheckFailed"; 
    $RequestRecipientTokenParams->ClientURLs->OnSessionTimeout ="https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnSessionTimeout"; 
    $RequestRecipientTokenParams->ClientURLs->OnSigningComplete = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnSigningComplete"; 
    $RequestRecipientTokenParams->ClientURLs->OnTTLExpired = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnTTLExpired"; 
    $RequestRecipientTokenParams->ClientURLs->OnViewingComplete = "https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&event=OnViewingComplete"; 

    $RequestRecipientTokenResponse = $api->RequestRecipientToken($RequestRecipientTokenParams); 

я получил следующее сообщение об ошибке:

SoapFault : One or both of Username and Password are invalid. 

Полномочия, предоставленных я действителен, и я могу войти в учетную запись demo.docusign.net с этими учетными данными. Я не уверен, где я делаю это неправильно.

Вот запрос SOAP, который генерируется:

<?xml version="1.0" encoding="UTF-8"?> 
    <SOAP-ENV:Envelope xmlns:SOAP- 
    ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.docusign.net/API/3.0" 
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"> 
     <SOAP-ENV:Header> 
      <wsa:Action>http://www.docusign.net/API/3.0/RequestRecipientToken</wsa:Action> 
      <wsa:To>https://www.docusign.net/API/3.0/api.asmx</wsa:To> 
      <wsa:MessageID>uudi:638fd49c-2516-12a9-8159-17a9c602975e</wsa:MessageID> 
      <wsa:ReplyTo> 
       <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address> 
      </wsa:ReplyTo> 
      <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP-ENV:mustUnderstand="1"> 
       <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
        <wsu:Created>2013-09-18T12:30:20Z</wsu:Created> 
        <wsu:Expires>2013-09-18T12:35:20Z</wsu:Expires> 
       </wsu:Timestamp> 
       <wsse:UsernameToken> 
        <wsse:Username>[email protected]</wsse:Username> 
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username- 
     token-profile-1.0#PasswordText">mypassword</wsse:Password> 
        <wsse:Nonce>0PZkAUVbHHiyjV8KZrN6x2x0S6cQ5WbAjTH4yn8dnc4=</wsse:Nonce> 
        <wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity- 
     utility-1.0.xsd">2013-09-18T12:29:18Z</wsu:Created> 
       </wsse:UsernameToken> 
      </wsse:Security> 
     </SOAP-ENV:Header> 
     <SOAP-ENV:Body> 
      <ns1:RequestRecipientToken> 
      <ns1:EnvelopeID>3e979aac-1d8d-4ab9-a45c-randElem</ns1:EnvelopeID> 
      <ns1:Username>Test Signer</ns1:Username> 
      <ns1:Email>Guest</ns1:Email> 
      <ns1:AuthenticationAssertion> 
       <ns1:AssertionID>175</ns1:AssertionID> 
       <ns1:AuthenticationInstant>2013-09-18T00:00:00.00</ns1:AuthenticationInstant> 
       <ns1:AuthenticationMethod>Email</ns1:AuthenticationMethod> 
       <ns1:SecurityDomain>192.168.0.43</ns1:SecurityDomain></ns1:AuthenticationAssertion> 
       <ns1:ClientURLs> 
        <ns1:OnSigningComplete>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnSigningComplete</ns1:OnSigningComplete> 
        <ns1:OnViewingComplete>https://YourApp.com/DocuSignCallback.html? 
     envelopeId=YourEnvelopeId&amp;event=OnViewingComplete</ns1:OnViewingComplete> 
        <ns1:OnCancel>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnCancel</ns1:OnCancel> 
        <ns1:OnDecline>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnDecline</ns1:OnDecline> 
        <ns1:OnSessionTimeout>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnSessionTimeout</ns1:OnSessionTimeout> 
        <ns1:OnTTLExpired>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnTTLExpired</ns1:OnTTLExpired> 
        <ns1:OnException>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnException</ns1:OnException> 
        <ns1:OnAccessCodeFailed>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnAccessCodeFailed</ns1:OnAccessCodeFailed> 
        <ns1:OnIdCheckFailed>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnIdCheckFailed</ns1:OnIdCheckFailed> 
        <ns1:OnFaxPending>https://YourApp.com/DocuSignCallback.html?envelopeId=YourEnvelopeId&amp;event=OnFaxPending</ns1:OnFaxPending> 
       </ns1:ClientURLs> 
      </ns1:RequestRecipientToken> 
     </SOAP-ENV:Body> 
    </SOAP-ENV:Envelope> 

ответ

3

Эта ошибка указывает на то, что учетные данные пользователя DocuSign вы предоставляете в запросе авторизации вызова API не являются действительными. Код, включенный в этот пост, не имеет отношения к действительности, так как любой вызов API приведет к этой ошибке, если имя пользователя или пароль, которые вы предоставили для аутентификации запроса, недействительны.

Если вы еще этого не сделали, я предлагаю вам создать трассировку полного XML-запроса (т. Е. Включая заголовки) для тщательного изучения учетных данных аутентификации, которые вы предоставляете в запросе. Лучший способ устранить такие проблемы - проверить, что происходит с проводкой (вместо того, чтобы пытаться устранить неисправность кода, производящего то, что происходит через провод) - как только проблема в XML идентифицируется, ее следует легко исправить в код.

+0

Я отправил запрос SOAP, который создается. Это поможет? – Bhargav

+0

Не должно быть связано с ошибкой «имя пользователя или пароль недействительно», но - я заметил, что ваш XML-запрос отсутствует. - это обязательный элемент в запросе RequestRecipientToken. –

0

Что касается ошибки «имя пользователя или пароль недействителен» - это может быть вызвано тем фактом, что ваш ключ не включен в состав имени пользователя. Со страницы 18 руководства API DocuSign SOAP (http://www.docusign.com/sites/default/files/DocuSignAPI_Guide.pdf):

Ключ интегратора должен быть помещен перед идентификатором пользователя, который находится в узле Username UsernameToken. Ключ интегратора должен быть обернут скобками «[и]». Пример формат:

<wsse:Username>[Integrator Key]2988541c-4ec7-4245-b520-f2d324062ca3</wsse:Username> 

Интегратора Ключ должен быть включен во всех запросах API, так как DocuSign требует, чтобы идентифицировать интегрирующее приложение.

Смежные вопросы