Я пытаюсь заставить работать интеграцию docusign, используя их SDK.Я выполнил шаг «Настройка и аутентификация клиента», как описано в их документации. @ https://developers.docusign.com/esign-rest-api/code-examples/config-and-auth.
Я установил демо-счет с помощью:
// Point to DocuSign Demo (sandbox) environment for requests
public const string RestApiUrl = "https://demo.docusign.net/restapi";
public const string client_id = "{CLIENT_ID}"; //integrator key
public const string client_secret = "{CLIENT_SECRET}";
public const string redirect_uri = "{REDIRECT_URI}";
public void OAuthAuthorizationCodeFlowTest()
{
// Make an API call with the token
ApiClient apiClient = new ApiClient(RestApiUrl);
DocuSign.eSign.Client.Configuration.Default.ApiClient = apiClient;
// Initiate the browser session to the Authentication server
// so the user can login.
Uri accountServerAuthUrl = apiClient.GetAuthorizationUri(client_id, new List<string>(), redirect_uri, "code", stateOptional);
System.Diagnostics.Process.Start(accountServerAuthUrl.OriginalString);
}
Я получил код доступа ииспользованный ниже код для получения токена доступа;
// request an access token
string accessToken = apiClient.GetOAuthToken(client_id, client_secret, true, AccessCode);
Console.WriteLine("Access_token: " + accessToken);
Я получил токен доступа, возвращенный как токен на предъявителя.
Я использовал приведенный ниже код для получения userInfo;
// call the GetUserInfo endpoint
OAuth.UserInfo userInfo = apiClient.GetUserInfo({ACCESS_TOKEN});
string accountId = string.Empty;
// find default account (if multiple present)
foreach (var item in userInfo.GetAccounts())
{
if (item.GetIsDefault() == "true")
{
accountId = item.AccountId();
apiClient = new ApiClient(item.GetBaseUri() + "/restapi");
break;
}
}
return accountId;
Теперь, используя учетную запись, я пытался создать конверт для отправки электронного письма с использованием шаблона.Я использовал приведенный ниже код в качестве общего ресурса в их документации @ https://developers.docusign.com/esign-rest-api/code-examples/request-a-signature-via-email-using-a-template
EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.EmailSubject = "[DocuSign C# SDK] - Please sign this doc";
// assign recipient to template role by setting name, email, and role name. Note that the
// template role name must match the placeholder role name saved in your account template.
TemplateRole tRole = new TemplateRole();
tRole.Email = "{USER_EMAIL}";
tRole.Name = "{USER_NAME}";
tRole.RoleName = "{ROLE}";
List<TemplateRole> rolesList = new List<TemplateRole>() { tRole };
// add the role to the envelope and assign valid templateId from your account
envDef.TemplateRoles = rolesList;
envDef.TemplateId = "{TEMPLATE_ID}";
// set envelope status to "sent" to immediately send the signature request
envDef.Status = "sent";
// |EnvelopesApi| contains methods related to creating and sending
Envelopes (aka signature requests)
EnvelopesApi envelopesApi = new EnvelopesApi();
EnvelopeSummary envelopeSummary =
envelopesApi.CreateEnvelope(accountId, envDef);
Я получаю сообщение об ошибке PARTNER_AUTHENTICATION_FAILED, у меня есть набор ключей интегратора - я успешно получил токен доступа.
Я также пытался передать объект конфигурации в конверт;
Configuration cfi = new Configuration(apiClient, accessToken: accessToken);
EnvelopesApi envelopesApi = new EnvelopesApi(apiClient.Configuration);
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
У кого-нибудь был такой же успех при использовании Docusign?