2017-10-09 3 views
1

Les documents https://docs.docusign.com/esign/guide/authentication/legacy_auth.html ne fonctionnent pas. J'ai passé au moins 2 heures à essayer de faire fonctionner ces instructions. Soit vos instructions sont erronées, ou ils ont un bug sur leur site.Besoin de l'API Docusign Endpoint

J'ai ouvert un dossier avec support il y a 4 jours, mais ils n'ont pas répondu. Je suis sur un crunch de temps pour aller de l'avant. Est-ce que quelqu'un sait comment obtenir cette URL.

Voici mon code C#:

ApiClient apiClient = new ApiClient("https://www.docusign.net/restapi"); 
    DocuSign.eSign.Client.Configuration.Default.ApiClient = apiClient; 
    DocuSignHeader myHeader = new DocuSignHeader() 
    { 
    Username = ConfigurationManager.AppSettings["DocuSignUsername"], 
    Password = ConfigurationManager.AppSettings["DocuSignPassword"], 
    IntegratorKey = ConfigurationManager.AppSettings["DocuSignIntegratorKey"], 
    }; 
    DocuSign.eSign.Client.Configuration.Default.AddDefaultHeader("X-DocuSign-Authentication", JsonConvert.SerializeObject(myHeader)); 
    AuthenticationApi authApi = new AuthenticationApi(); 
    LoginInformation loginInfo = authApi.Login(); 
    LoginAccount myAccount = loginInfo.LoginAccounts[0]; 
.. create envelope here.. 
    EnvelopesApi envelopesApi = new EnvelopesApi(GetBasePath(myAccount.BaseUrl)); 
    EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(myAccount.AccountId, envDef); 

Le but de GetBasePath() est de dépouiller tout après 'restapi', de sorte que l'URL est correcte.

+0

Pouvez-vous s'il vous plaît partager ce que vous avez essayé et quelle erreur vous obtenez –

+0

J'ai utilisé cet exemple: $ curl -i -H 'X-DocuSign-Authentification: {"Nom d'utilisateur": "[email protected]", "Mot de passe": "S3cre + p455w0Rd", "IntegratorKey": " 230546a7-9c55-40ad-8fbf-af205d5494ad "} '\ https://demo.docusign.net/restapi/v2/login_information Je mets les mêmes informations d'identification que celles que j'utilise pour me connecter à la production. J'ai changé l'URL à https://www.docusign.net/restapi/v2/login_information Mais je reçois des erreurs d'authentification. –

+0

J'ai ajouté mon code C# aussi. Fiddler continue d'afficher une erreur d'autorisation 401. J'ai littéralement passé plus d'une douzaine de nôtres à essayer de faire fonctionner cela en production, et ça ne marchera pas. Cela a bien fonctionné dans le bac à sable. –

Répondre

0

Le système de production live DocuSign possède plusieurs sous-domaines de compte, contrairement au système de démonstration qui utilise uniquement demo. Par exemple, en production, les sites possibles sont www, na2, na3, eu.

Votre code d'intégration doit analyser le sous-domaine du baseUrl renvoyé par votre demande d'authentification et reconfigurer le apiClient avec ce nouveau sous-domaine.

Il semble que vous utilisez un SDK DocuSign, il y a une note dans le readme qui explique ceci:


authentification

Intégrations de service qui utilisent héritage en-tête d'authentification

(L'authentification d'en-tête héritée utilise l'en-tête d'authentification X-DocuSign.)

Utilisez la méthode Authentification: login pour récupérer le numéro de compte et l'URL de base du compte. L'URL de la méthode de connexion est www.docusign.net pour la production et demo.docusign.net pour le sandbox du développeur. Le champ baseUrl fait partie de l'objet loginAccount. Voir les docs et l'objet loginAccount

La baseUrl du compte sélectionné, en production, commence par na1, na2, na3, eu1 ou autre chose. Utilisez la baseUrl qui est retournée pour créer le basePath (voir l'étape suivante). Utilisez basePath pour tous vos appels API suivants.

Comme indiqué par la méthode de connexion, baseUrl inclut la version de l'API et l'identifiant de compte. Fractionnez la chaîne pour obtenir le chemin de base, juste le nom du serveur et le nom de l'API. Par exemple, vous recevrez https://na1.docusign.net/restapi/v2/accounts/123123123. Vous voulez juste https://na1.docusign.net/restapi Instancier le SDK en utilisant le chemin de base. Par exemple ApiClient apiClient = new ApiClient (basePath);

Définissez l'en-tête d'authentification comme indiqué dans les exemples en utilisant Configuration.Default.AddDefaultHeader

Référence: C# SDK


Exemple de code

Voici le code C# correspondant exactement ce qui est mentionné ci-dessus (bande du sous-domaine du baseUrl et Reconfigurer l'apiClient):

// Update ApiClient with the new base url from login call 
string[] separatingStrings = { "/v2" }; 
apiClient = new ApiClient(loginInfo.LoginAccounts[0].BaseUrl.Split(separatingStrings, StringSplitOptions.RemoveEmptyEntries)[0]);