我没有成功使用PHP API登录docusign。我收到了错误 超时。但最有趣的是我能够通过REST客户端登录 在标题下面的地址
X-DocuSign-Authentication: <DocuSignCredentials><Username>zzzzzzz@yyyy.com</Username><Password>somepasss</Password><IntegratorKey>TEST-xxxxxxxxxxxxxxxxxxxx</IntegratorKey></DocuSignCredentials>Accept: application/json Content-Type: application/json
有没有人知道这个错误的原因? (php配置,模块扩展?防火墙?地理位置限制?)
Fatal error: Uncaught exception 'DocuSign\eSign\ApiException' with message 'API call to https://demo.docusign.net/restapi/v2/login_information timed out: a:26:{s:3:"url";s:54:"https://demo.docusign.net/restapi/v2/login_information";s:12:"content_type";N;s:9:"http_code";i:0;s:11:"header_size";i:0;s:12:"request_size";i:0;s:8:"filetime";i:-1;s:17:"ssl_verify_result";i:1;s:14:"redirect_count";i:0;s:10:"total_time";d:0.842999999999999971578290569595992565155029296875;s:15:"namelookup_time";d:0.51500000000000001332267629550187848508358001708984375;s:12:"connect_time";d:0.6870000000000000550670620214077644050121307373046875;s:16:"pretransfer_time";d:0;s:11:"size_upload";d:0;s:13:"size_download";d:0;s:14:"speed_download";d:0;s:12:"speed_upload";d:0;s:23:"download_content_length";d:-1;s:21:"upload_content_length";d:-1;s:18:"starttransfer_time";d:0;s:13:"redirect_time";d:0;s:12:"redirect_url";s:0:"";s:10:"primary_ip";s:14:"162.248.186.25";s:8:"certinfo";a:0:{}s:12:"primary_port";i:443;s:8:"local_ip";s:13:"192.168.1.126";s:10:"local in C:\xampp\htdocs\localbits\ds\docusign\src\ApiClient.php on line 233
( ! ) DocuSign\eSign\ApiException: API call to https://demo.docusign.net/restapi/v2/login_information timed out: a:26:{s:3:"url";s:54:"https://demo.docusign.net/restapi/v2/login_information";s:12:"content_type";N;s:9:"http_code";i:0;s:11:"header_size";i:0;s:12:"request_size";i:0;s:8:"filetime";i:-1;s:17:"ssl_verify_result";i:1;s:14:"redirect_count";i:0;s:10:"total_time";d:0.842999999999999971578290569595992565155029296875;s:15:"namelookup_time";d:0.51500000000000001332267629550187848508358001708984375;s:12:"connect_time";d:0.6870000000000000550670620214077644050121307373046875;s:16:"pretransfer_time";d:0;s:11:"size_upload";d:0;s:13:"size_download";d:0;s:14:"speed_download";d:0;s:12:"speed_upload";d:0;s:23:"download_content_length";d:-1;s:21:"upload_content_length";d:-1;s:18:"starttransfer_time";d:0;s:13:"redirect_time";d:0;s:12:"redirect_url";s:0:"";s:10:"primary_ip";s:14:"162.248.186.25";s:8:"certinfo";a:0:{}s:12:"primary_port";i:443;s:8:"local_ip";s:13:"192.168.1.126";s:10:"local_port";i:38524;} in C:\xampp\htdocs\localbits\ds\docusign\src\ApiClient.php on line 233
,php代码如下:
<?php
require_once('./docusign/autoload.php');
class DocuSignSample
{
public function login()
{
$username = "__some email__";
$password = "__some password___";
$integrator_key = "TEST-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$host = "https://demo.docusign.net/restapi";
$config = new DocuSign\eSign\Configuration();
$config->setHost($host);
$config->addDefaultHeader("X-DocuSign-Authentication", "{\"Username\":\"" . $username . "\",\"Password\":\"" . $password . "\",\"IntegratorKey\":\"" . $integrator_key . "\"}");
$apiClient = new DocuSign\eSign\ApiClient($config);
$authenticationApi = new DocuSign\eSign\Api\AuthenticationApi($apiClient);
$options = new \DocuSign\eSign\Api\AuthenticationApi\LoginOptions();
$loginInformation = $authenticationApi->login($options);
if (isset($loginInformation) && count($loginInformation) > 0) {
$loginAccount = $loginInformation->getLoginAccounts()[0];
if (isset($loginInformation)) {
$accountId = $loginAccount->getAccountId();
if (!empty($accountId)) {
echo $accountId;
}
}
}
}
}
$dss = new DocuSignSample();
$dss->login();
?>
答案 0 :(得分:4)
尝试
$config->setSSLVerification(false);
为我工作。
答案 1 :(得分:2)
我遇到了使用API的困难,直到我发现需要有一个带有http服务器和php的签名ssl或者还有一个不安全的解决方案,这只是禁用卷曲中的ssl检查(curl是造成这种不便的原因) ):
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get("http://factfinder.census.gov/faces/nav/jsf/pages/searchresults.xhtml?refresh=t")
wait = WebDriverWait(driver, 10)
actions = ActionChains(driver)
# click "Topics"
topics = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a#topic-overlay-btn")))
driver.execute_script("arguments[0].click();", topics)
# click "Dataset"
dataset = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "span[title=Dataset]")))
dataset.click()