У меня есть бесплатная учетная запись Sandbox разработчика устройства для подписи DocuSign. Но я не могу выполнить операцию подписи с помощью DssSign - PullRequest
0 голосов
/ 09 января 2019

У меня есть бесплатная учетная запись разработчика песочницы DocuSign Signature Appliance. Я хочу использовать "https://prime.cosigntrial.com:8080/SAPIWS/dss.asmx" и хочу использовать сервисный метод DssSign для создания и прикрепления подписи к pdf. Но это reutrn" urn: oasis : names: tc: dss: 1.0: resultmajor: ResponderError ". Пожалуйста, помогите, как я могу получить имя пользователя и пароль для программного создания новой подписи и присвоения pdf с использованием DocuSign API

Я уже загружаю примеры кода, найденные Git "docusign-signature-appliance-api-recipes-master", но не могу преуспеть.

// Подписать файл PDF public bool SignPDFFile ( строка FileToSign, строка UserName, Пароль строки, int X, Int Y, int Width, высота, Int Page, bool isVisible) {

        //Create Request object contains signature parameters
        RequestBaseType Req = new RequestBaseType();
        Req.OptionalInputs = new RequestBaseTypeOptionalInputs();

        //Here Operation Type is set: Verify/Create Signature Field/Sign/etc
        Req.OptionalInputs.SignatureType = SignatureTypeFieldCreateSign;

        //Configure Create and Sign operation parameters:
        Req.OptionalInputs.ClaimedIdentity = new ClaimedIdentity();
        Req.OptionalInputs.ClaimedIdentity.Name = new NameIdentifierType();
        Req.OptionalInputs.ClaimedIdentity.Name.Value = UserName;                       //User Name
        Req.OptionalInputs.ClaimedIdentity.Name.NameQualifier = " ";                    //Domain (relevant for Active Directory environment only)
        Req.OptionalInputs.ClaimedIdentity.SupportingInfo = new CoSignAuthDataType();
        Req.OptionalInputs.ClaimedIdentity.SupportingInfo.LogonPassword = Password;     //User Password
        Req.OptionalInputs.SAPISigFieldSettings = new SAPISigFieldSettingsType();
        Req.OptionalInputs.SAPISigFieldSettings.X = X;                                  //Signature Field X coordinate
        Req.OptionalInputs.SAPISigFieldSettings.XSpecified = true;
        Req.OptionalInputs.SAPISigFieldSettings.Y = Y;                                 //Signature Field Y coordinate
        Req.OptionalInputs.SAPISigFieldSettings.YSpecified = true;
        Req.OptionalInputs.SAPISigFieldSettings.Page = Page;                            //Page number the signature field will appear on
        Req.OptionalInputs.SAPISigFieldSettings.PageSpecified = true; 
        Req.OptionalInputs.SAPISigFieldSettings.Width = Width;                          //Signature Field width
        Req.OptionalInputs.SAPISigFieldSettings.WidthSpecified = true;
        Req.OptionalInputs.SAPISigFieldSettings.Height = Height;                        //Signature Field Height
        Req.OptionalInputs.SAPISigFieldSettings.HeightSpecified = true;
        Req.OptionalInputs.SAPISigFieldSettings.Invisible = !isVisible;                 //Specifies whether the signature will be visible or not
        Req.OptionalInputs.SAPISigFieldSettings.InvisibleSpecified = true;


        // Set configuration parameters /////////////////////////////////////////////////////////
        int numConfigurationParams = 6;
        Req.OptionalInputs.ConfigurationValues = new ConfValueType[numConfigurationParams];
        for (int i = 0; i < numConfigurationParams; i++)
        {
            Req.OptionalInputs.ConfigurationValues[i] = new ConfValueType();
        }

        // Add reason
        Req.OptionalInputs.ConfigurationValues[0].ConfValueID = ConfIDEnum.Reason;
        Req.OptionalInputs.ConfigurationValues[0].Item = "I am the author of this document";

        // Add TSA:
        /*
        Req.OptionalInputs.ConfigurationValues[1].ConfValueID = ConfIDEnum.UseTimestamp;
        Req.OptionalInputs.ConfigurationValues[1].Item = 1;

        Req.OptionalInputs.ConfigurationValues[2].ConfValueID = ConfIDEnum.TimestampURL;
        Req.OptionalInputs.ConfigurationValues[2].Item = "http://www.ca-soft.com/request.aspx";

        Req.OptionalInputs.ConfigurationValues[3].ConfValueID = ConfIDEnum.TimestampAdditionalBytes;
        Req.OptionalInputs.ConfigurationValues[3].Item = 4000;

        Req.OptionalInputs.ConfigurationValues[4].ConfValueID = ConfIDEnum.TimestampUser;
        Req.OptionalInputs.ConfigurationValues[4].Item = "";

        Req.OptionalInputs.ConfigurationValues[5].ConfValueID = ConfIDEnum.TimestampPWD;
        Req.OptionalInputs.ConfigurationValues[5].Item = "";

        // OCSP (NOTE: Server must contain comodo CA in order to use the following OCSP URL)
         Req.OptionalInputs.ConfigurationValues[4].ConfValueID = ConfIDEnum.UseOCSP;
         Req.OptionalInputs.ConfigurationValues[4].Item = 1;

         Req.OptionalInputs.ConfigurationValues[5].ConfValueID = ConfIDEnum.OCSPURL;
         Req.OptionalInputs.ConfigurationValues[5].Item = "ocsp.comodoca.com";
        */
        // End setting configuration parameters ////////////////////////////////////////////////

        //Set Session ID
        Req.RequestID = Guid.NewGuid().ToString();

        //Prepare the Data to be signed
        DocumentType doc1 = new DocumentType();
        DocumentTypeBase64Data b64data = new DocumentTypeBase64Data();
        Req.InputDocuments = new RequestBaseTypeInputDocuments();
        Req.InputDocuments.Items = new object[1];

        b64data.MimeType = "application/pdf";     //Can also be: application/msword, image/tiff, pplication/octet-string (ocsp/tsa are supported in PDF only)
        Req.OptionalInputs.ReturnPDFTailOnlySpecified = true;
        Req.OptionalInputs.ReturnPDFTailOnly = true;
        b64data.Value = ReadFile(FileToSign, true); //Read the file to the Bytes Array

        doc1.Item = b64data;
        Req.InputDocuments.Items[0] = doc1;

        //Call sign service
        ResponseBaseType Resp = null;

        try
        {
            // Create the Web Service client object
            DSS service = new DSS();
            service.Url = "https://prime.cosigntrial.com:8080/SAPIWS/dss.asmx";  //This url is constant and shouldn't be changed
          //  service.Url = "https://prime-dsa-devctr.docusign.net:8080/sapiws/dss.asmx";  //This url is constant and shouldn't be changed

            SignRequest sreq = new SignRequest();
            sreq.InputDocuments = Req.InputDocuments;
            sreq.OptionalInputs = Req.OptionalInputs;

            //Perform Signature operation
            Resp = service.DssSign(sreq);

            if (Resp.Result.ResultMajor != Success ) 
            {
                MessageBox.Show("Error: " + Resp.Result.ResultMajor + " " + 
                                            Resp.Result.ResultMinor + " " + 
                                            Resp.Result.ResultMessage.Value, "Error");
                return false;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error");
            if (ex is WebException)
            {
                WebException we = ex as WebException;
                WebResponse webResponse = we.Response;
                if (webResponse != null)
                    MessageBox.Show(we.Response.ToString(), "Web Response");
            }
            return false;
        }


        //Handle Reply
        DssSignResult sResp = (DssSignResult) Resp;



        //object sig = sResp.SignatureObject.Item;
        //SignatureObjectTypeBase64Signature sig = (SignatureObjectTypeBase64Signature) sResp.SignatureObject.Item;
       DssSignResultSignatureObjectBase64Signature sig = (DssSignResultSignatureObjectBase64Signature)sResp.SignatureObject.Item;

       byte[] signature = sig.Value;

        return PDFAttachSignature(FileToSign, signature, true); //Attach Signature to the PDF file 
    }

отображать ошибку urn: oasis: names: tc: dss: 1.0: resultmajor: ResponderError

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...