2016-07-08 27 views
1

DocuSign APIを使用してrecipientViewを作成しようとしています。私は、cURLのライブラリを使用してPHPでリクエストをPOSTしようとしているが、私のコードを実行する際に、何らかの理由で、以下の私のコードの行$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);は0を返して:

$url = "http://demo.docusign.net/restapi/v2/accounts/$account_id/envelopes/ 
     $envelope_id/views/recipient"; 

$body = array("returnUrl" => "http://www.docusign.com/devcenter", 
       "authenticationMethod" => "None", 
       "email" => "$recipient", 
       "userName" => "$recipient"); 

$body_string = json_encode($body); 

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept: application/json', 
    'Content-Type: application/json', 
    'Content-Length: '.strlen($body_string), 
    'Authorization: Bearer '.$access_token 
)); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $body_string); 

$json_response = curl_exec($curl); 

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

echo $status; 

$response = json_decode($jason_response, true); 
$url = $response["url"]; 

私はJSON経由でPOSTを送信していますし、私が返すべき応答はJSONです。なぜ私はcurl_exec()が失敗して$status = 0を作っているのですか?

+1

'curl_exec'呼び出しの後に' curl_error($ curl) 'を追加し、エラーメッセージを返すかどうかを確認してください。 –

+0

このエラーが発生したとき:demo.docusign.netへの接続に失敗しましたポート80:接続が拒否されました – Jodo1992

+0

それは問題です。私はこの情報を使って答えを加えました。 –

答えて

3

あなたのエラーメッセージ

Failed to connect to demo.docusign.net port 80: Connection refused 

の理由は、あなたがHTTPポート80に接続しようとしているということですが、docusign.netだけhttp://からhttps://へのHTTPSポート443

変更APIのURLに耳を傾けますあなたは設定されなければならず、curl_getinfo()も正しい値を返します。

0

あなたは認証ヘッダーを含めません。 APIへの各呼び出しを認証する必要があります。 curl_exec中にエラーがあった場合

Docs about Authentication options

+0

(アクセストークンを使用して)認証ヘッダーを追加しても、私は同じ応答を得ます。私は私の質問を更新しました。 – Jodo1992

0

curl_getinfo($curl, CURLINFO_HTTP_CODE);の結果はゼロになります。あなたはcurl_errorには、次の返さことがわかったので:

は、ポート80をdemo.docusign.netへの接続に失敗しました:接続が結果がゼロである

を拒否しました。

DocuSignがあなたの接続を拒否している理由を理解する必要があります(APIドキュメントを参照)。それを理解して修正したら、正しいJSON結果を取得し、有効なHTTPステータスコードを取得する必要があります。

関連する問題