0

C# を使用して WCF Web サービスで使用する Embedded Signing API の 2 つの段階を過ぎました。

ログイン認証情報とリクエスト エンベロープ API 呼び出しが機能し、envelopeID が生成されます。3 番目のステップは、「埋め込みコンソール サイン ビューの URL を取得する」です。

string reqBody = "<recipientViewRequest xmlns=\"http://www.docusign.com/restapi\">" +
                 "<authenticationMethod>" + "email" + "</authenticationMethod>" +
                 "<email>" + "jay.krishnamoorthy@gmail.com" + "</email>" +     // NOTE: Use different email address if username provided in non-email format!
                 "<returnUrl>" + "http://www.docusign.com" + "</returnUrl>" +  // username can be in email format or an actual ID string
                 "<clientUserId>" +  "1001" + "</clientUserId>" +
                 "<userName>" + "Jay Krishnamoorthy" + "</userName>" +
                 "</recipientViewRequest>";

// append uri + "/views/recipient" to baseUrl and use in the request
request = (HttpWebRequest)WebRequest.Create(baseURL + uri + "/views/recipient");
request.Headers.Add("X-DocuSign-Authentication", authenticateStr);
request.ContentType = "application/xml";
request.Accept = "application/xml";
request.ContentLength = reqBody.Length;
request.Method = "POST";
// write the body of the request
byte[] body2 = System.Text.Encoding.UTF8.GetBytes(reqBody);
Stream dataStream2 = request.GetRequestStream();
dataStream2.Write(body2, 0, reqBody.Length);
dataStream2.Close();
// read the response
webResponse = (HttpWebResponse)request.GetResponse();-----> comes back with Bad request

BAD リクエスト応答の原因となるリクエスト本文の欠落情報を手伝ってくれる人がいますか。

4

2 に答える 2

0

あなたの質問のreqBody値を理解するのに苦労しているので、それについてコメントする代わりに、適切なPOST 受信者ビューリクエストがどのように見えるか (XML 形式)の簡単な例を示します。

POST https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{{envelopeId}}/views/recipient

<recipientViewRequest xmlns="http://www.docusign.com/restapi">
  <authenticationMethod>Email</authenticationMethod>
  <email>RECIPIENT_EMAIL_ADDRESS</email>  
  <returnUrl>http://www.google.com</returnUrl>
  <clientUserId>CLIENT_USER_ID_VALUE_SPECIFIED_IN_THE_REQUEST</clientUserId>
  <userName>RECIPIENT_NAME</userName>
</recipientViewRequest>

ここに記載したリクエスト URIリクエスト ボディを、あなたが送信したものと比較し、必要に応じて一致するように調整することをお勧めします。

さらに、「Fiddler」などのツールを使用して、XML 要求と応答がネットワーク経由で送信されているときにそれらを調べることをお勧めします。つまり、Fiddler を使用して生の XML を調べて問題を特定し、更新します。問題を修正するためのコード (つまり、適切な形式のリクエストを生成/送信するため)。未加工の XML リクエスト / レスポンスのトレースを生成できることは、DocuSign API 認定プロセスの要件であるため、開発中の貴重なトラブルシューティング アセットでもあるため、遅かれ早かれそれを理解することをお勧めします (あなたが得ているような「Bad Request」応答)。

于 2013-11-06T23:33:30.210 に答える
0

リクエストの本文にはすべての適切な要素が含まれており、一見すると正しいように見えますが、今何が間違っているのかがわかります。認証方法を設定するときのリクエスト本文で、次のように設定していることがわかります。

"<authenticationMethod>" + "email" + "</authenticationMethod>"

これは正しくありません。ここの値は、実際には文字列emailまたはEmailである必要があります。受信者の実際の電子メール アドレスは入力しません。プロパティのポイントは、authenticationMethod期待する認証レベルをシステムに伝えることです。に設定するとemail、その受信者に対して必要な認証形式は電子メール アドレスだけであることをシステムに伝えることになります。したがって、代わりに必要なのは次のとおりです。

"<authenticationMethod>email</authenticationMethod>"
于 2013-11-07T23:55:00.073 に答える