示例#1
0
        /// <summary>
        /// 企业用户重新认证企业
        /// </summary>
        /// <param name="client"></param>
        /// <param name="realNameAuth">认证对象</param>
        /// <returns></returns>
        public string EnterpriseReCertification(SDKClient client, RealNameAuth realNameAuth)
        {
            if (!RealNameAuth.AUTH_TYPE_ENTERPRISE.Equals(realNameAuth.type))
            {
                throw new Exception("EnterpriseReCertification失败, 失败原因: 用户类型必须为 RealNameAuth.AUTH_TYPE_ENTERPRISE");
            }
            string response = null;

            try
            {
                RecertificationRequest request = new RecertificationRequest(realNameAuth);
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("EnterpriseReCertification失败,失败原因: " + e.Message);
            }

            SdkResponse <NoCustomResult> sdkResponse = HttpJsonConvert.DeserializeResponse <NoCustomResult>(response);

            if (!sdkResponse.Success)
            {
                throw new Exception("EnterpriseReCertification失败,失败原因: " + sdkResponse.Message);
            }
            return(sdkResponse.Success.ToString());
        }
示例#2
0
        static void Main(string[] args)
        {
            string    serviceUrl  = "https://openapi.qiyuesuo.cn"; //开放平台服务地址,测试环境:https://openapi.qiyuesuo.cn; 正式环境:https://openapi.qiyuesuo.com
            string    accessToken = "qAJ6biXCwp";                  //对接平台标识,在契约锁云平台完成企业实名认证,并成功申请开放平台后获得;
            string    accessSeret = "iMFLfa2785VCZXVP3rhQqy7pgsI"; //对接平台密码,在契约锁云平台完成企业实名认证,并成功申请开放平台后获得;
            SDKClient client      = new SDKClient(accessToken, accessSeret, serviceUrl);

            //远程签署
            //RemoteSign remoteSign = new RemoteSign(client);
            //remoteSign.Process();

            //标准签署
            //StandardSign standardSign = new StandardSign(client);
            //standardSign.Process();


            //本地签署
            //LocalSign localSign = new LocalSign(client);
            //localSign.Process();

            //个人认证
            //PersonalAuthClass personalAuth = new PersonalAuthClass(client);
            //personalAuth.Process();

            //企业认证
            //CompanyAuthClass companyAuth = new CompanyAuthClass(client);
            //companyAuth.Process();

            //文件存证
            //EVS_SDK.Bean.SDKClient evsClient = new EVS_SDK.Bean.SDKClient(accessToken, accessSeret, serviceUrl);
            //Storage storage = new Storage(evsClient);
            //storage.Process();
        }
示例#3
0
        /**
         *
         * 利用业务分类配置进行公章签署
         * 签署位置需要在业务分类中指定,若没指定则需要传递签署位置
         *
         * */
        private SdkResponse <Object> CompanySealSignByCategoryConfig(SDKClient client, string contractId)
        {
            SdkResponse <Contract>     detail  = this.Detail(client, contractId);
            ContractSignCompanyRequest request = new ContractSignCompanyRequest();

            request.ContractId = contractId;

            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("公章签署请求服务器失败,失败原因:" + e.Message);
            }
            SdkResponse <Object> sdkResponse = HttpJsonConvert.DeserializeResponse <Object>(response);

            if (!sdkResponse.Code.Equals(0))
            {
                throw new Exception("公章签署失败,失败原因:" + sdkResponse.Message);
            }
            return(sdkResponse);
        }
        /// <summary>
        /// 发送并处理快捷签约请求
        /// </summary>
        /// <param name="client"></param>
        /// <param name="contract">签约的合同对象</param>
        /// <returns>签约URL-浏览器打开可继续签约</returns>
        public string Process(SDKClient client, Contract contract)
        {
            DraftContractRequest request = new DraftContractRequest(contract);
            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("起草签约失败, 失败原因: " + e.Message);
            }

            SdkResponse <SignResult> signRS = HttpJsonConvert.DeserializeResponse <SignResult>(response);

            if (!signRS.Success)
            {
                throw new Exception("起草签约失败, 失败原因: " + signRS.Message);
            }
            Console.WriteLine("Contract No: {0} , you can access URL in the Explorer to continue the contract signing:\n {1}\n",
                              signRS.Result.ContractId, signRS.Result.SignUrl);

            return(signRS.Result.SignUrl);
        }
示例#5
0
        private SdkResponse <Object> Audit(SDKClient client, string contractId)
        {
            ContractAuditRequest request = new ContractAuditRequest();

            request.ContractId = contractId;
            request.Pass       = true;        //审批结果,True:通过,False:不通过,若不通过合同无法继续签署
            request.Comment    = "符合要求,审批通过"; //审批原因

            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("审批合同请求服务器失败,失败原因:" + e.Message);
            }
            SdkResponse <Object> sdkResponse = HttpJsonConvert.DeserializeResponse <Object>(response);

            if (!sdkResponse.Code.Equals(0))
            {
                throw new Exception("审批合同失败,失败原因:" + sdkResponse.Message);
            }
            return(sdkResponse);
        }
        /// <summary>
        /// 发送并处理快捷签约请求
        /// </summary>
        /// <param name="client"></param>
        /// <param name="quickContract">签约的合同对象</param>
        private new void Process(SDKClient client, Contract quickContract)
        {
            QuickSignRequest request  = new QuickSignRequest(quickContract);
            string           response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("快捷签约合同失败,失败原因: " + e.Message);
            }

            SdkResponse <SignResult> signRS = HttpJsonConvert.DeserializeResponse <SignResult>(response);

            if (!signRS.Success)
            {
                throw new Exception("快捷签约合同失败,失败原因: " + signRS.Message);
            }
            string DOWNLOAD_URL = client.ServerUrl + RequestPathConstant.DOWNLOAD_CONTRACT + "?appKey=" + client.AccessToken
                                  + "&appSecret=" + client.AccessSecret + "&storeNo=" + signRS.Result.ContractId;

            Console.WriteLine("Contract No: {0} , you can download the file:\n a) call Program.cs#Fetch method with Store No {1}\n b) access URL in the Explorer: {2}\n",
                              signRS.Result.ContractId, signRS.Result.ContractId, DOWNLOAD_URL);
        }
示例#7
0
        private SdkResponse <DocumentAddResult> AddDocumnetByTemplate(SDKClient client, string contractId)
        {
            string templateId = "2492236993899110515";   //待添加的文件模板Id,合同模板请前往契约锁云平台维护
            DocumentAddByTemplateRequest request = new DocumentAddByTemplateRequest(contractId, "添加模板", templateId);

            // 如果文件模板为参数模板,添加参数内容
            request.AddTemplateParam(new TemplateParam("接收方1", "契约锁"));
            request.AddTemplateParam(new TemplateParam("接收方2", "电子合同"));

            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("根据模板添加合同文档请求服务器失败,失败原因:" + e.Message);
            }
            SdkResponse <DocumentAddResult> sdkResponse = HttpJsonConvert.DeserializeResponse <DocumentAddResult>(response);

            if (!sdkResponse.Code.Equals(0))
            {
                throw new Exception("根据模板添加合同文档添加失败,失败原因:" + sdkResponse.Message);
            }
            return(sdkResponse);
        }
示例#8
0
        public void Process(SDKClient client)
        {
            //根据代码配置发起合同草稿,生成一个平台方公司发,个人签署的流程
            SdkResponse <Contract> draft = this.Draft(client);

            Console.WriteLine("创建合同草稿成功,合同ID:{0}", draft.Result.Id);
            //为合同添加签署的文件:(1)根据本地文件添加(2)根据在线模板添加,并维护参数
            SdkResponse <DocumentAddResult> fileAddResult = this.AddDocumentByFile(client, draft.Result.Id);

            Console.WriteLine("根据文件添加合同文档成功,文档ID:{0}", fileAddResult.Result.DocumentId);
            SdkResponse <DocumentAddResult> templateAddResult = this.AddDocumnetByTemplate(client, draft.Result.Id);

            Console.WriteLine("根据模板添加合同文件成功,文档ID:{0}", templateAddResult.Result.DocumentId);
            //发起合同,并指定签署位置(可选)
            SdkResponse <Object> sendResult = this.Send(client, draft.Result, fileAddResult.Result.DocumentId, templateAddResult.Result.DocumentId);

            Console.WriteLine("发起合同成功");
            //公司公章签署(若未指定位置,需指定位置签署)
            this.CompanySealSign(client, draft.Result.Id, fileAddResult.Result.DocumentId, templateAddResult.Result.DocumentId);
            Console.WriteLine("合同公章签署成功");

            /**
             *  平台方签署完成,签署方签署可采用
             * (1)接收短信的方式登录契约锁云平台进行签署
             * (2)生成内嵌页面签署链接进行签署(下方生成的链接)
             * (3)JS-SDK签署(仅支持个人)
             */
            SdkResponse <PageUrlResult> pageUrl = this.GerenateSignUrl(client, draft.Result.Id);

            Console.WriteLine("个人签署方签署链接生成成功,签署链接:{0}", pageUrl.Result.PageUrl);
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            //Get your ENV and CPID from the portal key vaults module or visit https://help.iotconnect.io SDK section.
            string cpId = "14cf4939849c4183ac5c74660ca9ab27", uniqueId = "elephantedge1", env = "Avnet";

            if (string.IsNullOrWhiteSpace(cpId))
            {
                Console.WriteLine("cpId can not be blank.");
                return;
            }

            if (string.IsNullOrWhiteSpace(uniqueId))
            {
                Console.WriteLine("uniqueId can not be blank.");
                return;
            }

            //Initialize device sdk client to connect device.
            client = new SDKClient(cpId, uniqueId, DeviceCallback, TwinUpdateCallBack, env);

            //Prepare device data with valid format.[Type1]
            var deviceData = "[{\"uniqueId\":\"<deviceUniqueId>\",\"time\":\"2020-02-14T12:18:23.5499042Z\",\"d\":[{\"humidity\":13}]}]";

            //Send data to device using SendData method.
            client.SendData(deviceData);

            Console.ReadLine();
        }
示例#10
0
        private SdkResponse <DocumentAddResult> AddDocumentByFile(SDKClient client, string contractId)
        {
            string path = "C:\\Users\\Richard Cheung\\Documents\\契约锁\\测试\\AA.pdf";   //待添加的文件路径
            Stream file = new FileStream(path, FileMode.Open);
            //指定文件名称,以及文件类型,比如此时的文件为pdf
            DocumentAddByFileRequest request = new DocumentAddByFileRequest(contractId, "根据文件添加文档", file, "pdf");

            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("根据文件添加合同文档请求服务器失败,失败原因:" + e.Message);
            }

            SdkResponse <DocumentAddResult> sdkResponse = HttpJsonConvert.DeserializeResponse <DocumentAddResult>(response);

            if (!sdkResponse.Code.Equals(0))
            {
                throw new Exception("根据文件添加合同文档失败,失败原因:" + sdkResponse.Message);
            }
            return(sdkResponse);
        }
示例#11
0
 private void SendXml(string xml)
 {
     this.rtbResult.Clear();
     xml = xml.Replace("##GUID", SDKClient.GetInstace().GetGUID());
     SDKClient.GetInstace().SendXmlCmd(xml);
     this.rtbResult.AppendText("发送数据: \n" + xml + "\n\n");
     xml = SDKClient.GetInstace().RecvXmlCmd();
     this.rtbResult.AppendText("接收数据: \n" + xml + "\n\n");
 }
        /// <summary>
        /// 企业和个人签约
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        public new void CompanyAndPersonSign(SDKClient client)
        {
            Contract contract = ContractOfCompanyAndPerson();

            contract.SignatoryAuto = SxqConst.BOOL_YES;

            /** 快捷签约请求 **/
            Process(client, contract);
        }
示例#13
0
        private SdkResponse <Object> CompanySealSign(SDKClient client, string contractId, string documentId1, string documentId2)
        {
            ContractSignCompanyRequest request = new ContractSignCompanyRequest();

            request.ContractId = contractId;

            //若公章未指定签署位置,需要在签署时指定签署位置
            //若制定了签署位置,优先使用签署位置中的位置进行签署

            /*
             * Stamper companyStamper = new Stamper();
             * companyStamper.Type = "COMPANY";
             * companyStamper.OffsetX = 0.2;
             * companyStamper.OffsetY = 0.3;
             * companyStamper.Page = 1;
             * companyStamper.DocumentId = documentId1;
             * companyStamper.SealId = "2490828768980361630";
             *
             * Stamper companyTimeStamp = new Stamper();
             * companyTimeStamp.Type = "TIMESTAMP";
             * companyTimeStamp.OffsetX = 0.4;
             * companyTimeStamp.OffsetY = 0.2;
             * companyTimeStamp.Page = 1;
             * companyTimeStamp.DocumentId = documentId1;
             * companyTimeStamp.SealId = "2490828768980361630";
             *
             * //骑缝章签署需要文档页数在一页以上
             * Stamper acrossPageStamper = new Stamper();
             * acrossPageStamper.Type = "ACROSS_PAGE";
             * acrossPageStamper.OffsetY = 0.2;
             * acrossPageStamper.DocumentId = documentId1;
             * acrossPageStamper.SealId = "2490828768980361630";
             *
             * request.AddStampers(companyStamper);
             * request.AddStampers(companyTimeStamp);
             * request.AddStampers(acrossPageStamper);
             */


            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("公章签署请求服务器失败,失败原因:" + e.Message);
            }
            SdkResponse <Object> sdkResponse = HttpJsonConvert.DeserializeResponse <Object>(response);

            if (!sdkResponse.Code.Equals(0))
            {
                throw new Exception("公章签署失败,失败原因:" + sdkResponse.Message);
            }
            return(sdkResponse);
        }
        /// <summary>
        /// 多方签约,每个签约方支持多个签约人
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        public new void MultiplePartiesSign(SDKClient client)
        {
            Contract contract = ContractOfMultipleParties();

            contract.SignatoryAuto = SxqConst.BOOL_YES;

            /** 快捷签约请求 **/
            Process(client, contract);
        }
        /// <summary>
        /// 企业和企业签约
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        public new void TwoCompanySign(SDKClient client)
        {
            Contract contract = ContractOfTwoCompany();

            contract.SignatoryAuto = SxqConst.BOOL_YES;

            /** 快捷签约请求 **/
            Process(client, contract);
        }
示例#16
0
        private void RefreshFileList_Click(object sender, EventArgs e)
        {
            this.rtbResult.Clear();
            string xml = XmlCmd.GetFiles();

            xml = xml.Replace("##GUID", SDKClient.GetInstace().GetGUID());
            SDKClient.GetInstace().SendXmlCmd(xml);
            this.rtbResult.AppendText("发送数据: \n" + xml + "\n\n");
            xml = SDKClient.GetInstace().RecvXmlCmd();
            this.rtbResult.AppendText("接收数据: \n" + xml + "\n\n");
            this.LoadXmlToFileList(xml, this.RemoteList);
        }
示例#17
0
        /// <summary>
        /// 甲乙两人签约
        /// </summary>
        /// <param name="client"></param>
        /// <returns>签约URL-浏览器打开可继续签约</returns>
        public string TwoPeopleSign(SDKClient client)
        {
            Contract contract = ContractOfTwoPeople();

            // 关闭登录前的合同预览;关闭新建账户的密码设置
            contract.AllowPreview    = SxqConst.PREVIEW_OFF;
            contract.AllowPwdSetting = SxqConst.PWD_SETTING_OFF;
            // 开启个人签约人强制手写签章
            contract.HandWriting = true;

            /** 签约请求 **/
            return(Process(client, contract));
        }
示例#18
0
        /**
         *  创建草稿
         **/
        private SdkResponse <Contract> Draft(SDKClient client)
        {
            ContractDraftRequest request  = new ContractDraftRequest();
            Contract             contract = new Contract();

            contract.Subject = "合同主题名称";
            //添加平台方签署方
            Signatory platformSignatory = new Signatory("COMPANY", new User("张忱昊", "17621699044", "MOBILE"), 1);

            platformSignatory.TenantName = "大头橙橙汁公司";//平台方公司名称
            //添加平台方签署流程,可根据需要调整
            //目前平台方签署流程为: (1)公章签署(2)法人章签署
            // 公章签署流程,并设置签署公章ID
            SignAction sealAction = new SignAction("COMPANY", 1);

            sealAction.SealId = "2490828768980361630";
            platformSignatory.AddAction(sealAction);
            contract.AddSignatory(platformSignatory);

            //添加个人签署方,并设置个人签署方需要上传的附件内容
            Signatory personalSignatory = new Signatory("PERSONAL", new User("邓茜茜", "15021504325", "MOBILE"), 2);

            personalSignatory.TenantName = "邓茜茜";//接收方名称
            contract.AddSignatory(personalSignatory);

            //设置合同基本信息
            contract.ExpireTime = "2020-07-28 23:59:59"; //设置合同过期时间,合同过期时间需要晚于发起时间
            contract.Send       = false;                 //合同不发起
            request.Contract    = contract;

            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("创建合同草稿请求服务器失败,失败原因" + e.Message);
            }

            SdkResponse <Contract> sdkResponse = HttpJsonConvert.DeserializeResponse <Contract>(response);

            if (!sdkResponse.Code.Equals(0))
            {
                throw new Exception("创建合同草稿失败,失败原因:" + sdkResponse.Message);
            }
            return(sdkResponse);
        }
示例#19
0
        private static SDKClient GetOrCreateClient()
        {
            if (client != null)
            {
                return(client);
            }
            // 请使用你注册账户的Secrect; 否则会使用以下测试环境默认Secret
            accessSecret = string.IsNullOrEmpty(accessSecret) ? "3daca3b13ef04e7f8a751d74c8318a1f" : accessSecret;
            // 请使用你注册账户的Token; 否则会使用以下测试环境默认Token
            accessToken = string.IsNullOrEmpty(accessToken) ? "20200303093507658157" : accessToken;
            // 指定访问的服务器
            string serverUrl = ParseServer(env);

            return(client = new SDKClient(accessToken, accessSecret, serverUrl, callBackUrl));
        }
示例#20
0
        private void button3_Click(object sender, EventArgs e)
        {
            SDKClient client = new SDKClient("192.168.3.195", 10261, "qcu1", "", "lq", "lq", 0);

            while (true)
            {
                var flag = client.openConnection();
                var msg  = client.getMessage();
                if (msg == string.Empty)
                {
                    break;
                }
                Debug.WriteLine(msg);
            }
        }
示例#21
0
        private void Upload_Click(object sender, EventArgs e)
        {
            ArrayList files = new ArrayList();

            foreach (ListViewItem item in UploadList.Items)
            {
                FileServices.FileSession session = new FileServices.FileSession();
                session.name = item.SubItems[0].Text;
                session.size = Convert.ToInt64(item.SubItems[1].Text);
                if (item.SubItems[2].Text == "图片")
                {
                    session.type = FileServices.HFileType.kImageFile;
                }
                else if (item.SubItems[2].Text == "视频")
                {
                    session.type = FileServices.HFileType.kVideoFile;
                }
                else if (item.SubItems[2].Text == "字体")
                {
                    session.type = FileServices.HFileType.kFont;
                }
                else if (item.SubItems[2].Text == "固件")
                {
                    session.type = FileServices.HFileType.kFireware;
                }
                else if (item.SubItems[2].Text == "FPGA参数")
                {
                    session.type = FileServices.HFileType.kFPGAConfig;
                }
                else if (item.SubItems[2].Text == "基本参数")
                {
                    session.type = FileServices.HFileType.kSettingCofnig;
                }
                else
                {
                    continue;
                }

                session.md5  = item.SubItems[3].Text;
                session.path = item.SubItems[4].Text;

                files.Add(session);
            }

            FileServices services = new FileServices(SDKClient.GetInstace(), files);

            services.SendFiles();
        }
示例#22
0
        /**
         *  用户通过配置好的业务分类进行合同发起
         *  需在业务分类里配置好将要发起的合同文件或合同模板
         *  配置好整个签署流程,以及签署流程中使用的印章
         *
         **/
        private SdkResponse <Contract> DraftByCategory(SDKClient client)
        {
            Contract draftContract = new Contract();

            draftContract.Subject  = "合同主体";                                    // 设置合同名称
            draftContract.Category = new Category("2584280095237849689");       //设置将要使用的业务分类配置
            draftContract.AddTemplateParam(new TemplateParam("接收方2", "发起方填参")); //若业务分类配置了参数模板,进行发起方填参
            draftContract.AddTemplateParam(new TemplateParam("接收方1", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方3", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方4", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方5", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方6", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方7", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方8", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方9", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方10", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方11", "发起方填参2"));
            draftContract.AddTemplateParam(new TemplateParam("接收方12", "发起方填参2"));
            //设置 合同接收方,该设置的合同接收方需要与业务分类配置的接收方流程一致
            Signatory companySignatory = new Signatory("COMPANY", new User("17621699044", "MOBILE"), 1);

            companySignatory.TenantName = "大头橙橙汁公司";
            draftContract.AddSignatory(companySignatory);
            Signatory personalSignatory = new Signatory("PERSONAL", new User("15021504325", "MOBILE"), 2);

            personalSignatory.TenantName = "邓茜茜";
            draftContract.AddSignatory(personalSignatory);
            draftContract.Send = true;  //设置发起默认发起,业务分类中必须要有可用的签署文件

            string response = null;

            try
            {
                response = client.Service(new ContractDraftRequest(draftContract));
            }
            catch (Exception e)
            {
                throw new Exception("创建合同草稿请求服务器失败,错误原因:" + e.Message);
            }
            SdkResponse <Contract> sdkResponse = HttpJsonConvert.DeserializeResponse <Contract>(response);

            if (!sdkResponse.Code.Equals(0))
            {
                throw new Exception("创建合同草稿失败,失败原因:" + sdkResponse.Message);
            }
            return(sdkResponse);
        }
示例#23
0
        /// <summary>
        /// 甲乙两人签约
        /// 并设定合同失效时间
        /// </summary>
        /// <param name="client"></param>
        /// <returns>签约URL-浏览器打开可继续签约</returns>
        public string TwoPeopleSignAndSetExpireTime(SDKClient client)
        {
            Contract contract = ContractOfTwoPeople();

            // 关闭登录前的合同预览;关闭新建账户的密码设置
            contract.AllowPreview    = SxqConst.PREVIEW_OFF;
            contract.AllowPwdSetting = SxqConst.PWD_SETTING_OFF;
            // 设置合同的失效时间(暨多少时间内有效)为:现在开始后的三天内;
            contract.ValidTimeStamp = SignUtil.GetExpireTimestamp(SignUtil.CurrentMS(), 24 * 3);
            // 失效时间也可以单独设置在签约人对象上,签约人对象上的优先级比合同对象上的高,会覆盖合同对象上的失效时间
            //contract.SignatoryList[0].ValidTimeStamp = SignUtil.GetExpireTimestamp(SignUtil.CurrentMS(), 24 * 7);
            // 开启个人签约人强制手写签章
            contract.HandWriting = true;

            /** 签约请求 **/
            return(Process(client, contract));
        }
示例#24
0
        static void Main(string[] args)
        {
            string accessSecret = "替换为开放平台SECRET";
            string accessToken  = "替换为开放平台TOKAN";
            string serverUrl    = "https://openapi.qiyuesuo.cn"; //测试环境:https://openapi.qiyuesuo.cn ; 正式环境:https://openapi.qiyuesuo.com

            SDKClient client = new SDKClient(accessToken, accessSecret, serverUrl);


            // 利用业务分类配置进行合同发送
            //SendByCategory example = new SendByCategory();
            //example.Process(client);

            SendByCodeSetting example = new SendByCodeSetting();

            example.Process(client);
        }
示例#25
0
        private SdkResponse <Object> LpSign(SDKClient client, string contractId, string documentId1, string documentId2)
        {
            ContractSignLPRequest request = new ContractSignLPRequest();

            request.ContractId = contractId;

            //若法人章未指定签署位置,需要在签署时指定签署位置
            //若制定了签署位置,优先使用签署位置中的位置进行签署

            /*
             * Stamper lpStamper = new Stamper();
             * lpStamper.Type = "LP";
             * lpStamper.OffsetX = 0.2;
             * lpStamper.OffsetY = 0.3;
             * lpStamper.Page = 1;
             * lpStamper.DocumentId = documentId1;
             *
             * Stamper lpTimeStamp = new Stamper();
             * lpTimeStamp.Type = "TIMESTAMP";
             * lpTimeStamp.OffsetX = 0.4;
             * lpTimeStamp.OffsetY = 0.2;
             * lpTimeStamp.Page = 1;
             * lpTimeStamp.DocumentId = documentId1;
             * request.AddStampers(lpStamper);
             * request.AddStampers(lpTimeStamp);
             */

            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("法人章签署请求服务器失败,失败原因:" + e.Message);
            }
            SdkResponse <Object> sdkResponse = HttpJsonConvert.DeserializeResponse <Object>(response);

            if (!sdkResponse.Code.Equals(0))
            {
                throw new Exception("法人章签署失败,失败原因:" + sdkResponse.Message);
            }
            return(sdkResponse);
        }
示例#26
0
        private void DeleteRomoteFile_Click(object sender, EventArgs e)
        {
            if (this.RemoteList.SelectedItems.Count == 0)
            {
                //说明没有行被选中
                return;
            }

            ArrayList names = new ArrayList();

            for (int i = 0; i < this.RemoteList.SelectedItems.Count; i++)
            {
                names.Add(this.RemoteList.SelectedItems[i].Text);
            }

            string xml    = "";
            string header =
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
                + "<sdk guid=\"##GUID\">\n"
                + "    <in method=\"DeleteFiles\">\n"
                + "        <files>\n";
            string end =
                "        </files>\n"
                + "    </in>\n"
                + "</sdk>\n";

            int    size = names.Count;
            string item = "            <file name=\"##name\"/>\n";
            string name = "";

            for (int i = 0; i < size; i++)
            {
                name = item.Replace("##name", (string)names[i]);
                xml += name;
            }

            xml = header + xml + end;
            this.rtbResult.Clear();
            xml = xml.Replace("##GUID", SDKClient.GetInstace().GetGUID());
            SDKClient.GetInstace().SendXmlCmd(xml);
            this.rtbResult.AppendText("发送数据: \n" + xml + "\n\n");
            xml = SDKClient.GetInstace().RecvXmlCmd();
            this.rtbResult.AppendText("接收数据: \n" + xml + "\n\n");
        }
示例#27
0
        /// <summary>
        /// 下载已签约/已存证文件
        /// </summary>
        /// <param name="client"></param>
        /// <param name="contractId">合同编号</param>
        /// <param name="filePath">文件的保存路径</param>
        /// <returns></returns>
        public void Download(SDKClient client, string contractId, string filePath)
        {
            DownloadContractRequest request = new DownloadContractRequest(contractId);

            try
            {
                Stream outputStream = new MemoryStream();
                client.Download(request, ref outputStream);

                MemoryStream memoryStream = (MemoryStream)outputStream;
                FileStream   fs           = new FileStream(filePath, FileMode.Create);
                BinaryWriter w            = new BinaryWriter(fs);
                w.Write(memoryStream.ToArray());
                fs.Close();
                memoryStream.Close();
            }
            catch (Exception e)
            {
                throw new Exception("取回文件失败,失败原因: " + e.Message);
            }
        }
示例#28
0
        public void Process(SDKClient client)
        {
            // 利用业务分类配置创建合同并发起(需配置签署位置,以及合同文件)
            SdkResponse <Contract> contract = this.DraftByCategory(client);

            Console.WriteLine("根据业务分类创建合同草稿成功,并成功发起,合同ID:{0}", contract.Result.Id);
            // 利用业务分类配置进行公章签署(需配置签署位置以及签署印章)
            this.CompanySealSignByCategoryConfig(client, contract.Result.Id);
            Console.WriteLine("根据业务分类指定位置签署公章成功");

            /**
             *  平台方签署完成,签署方签署可采用
             * (1)接收短信的方式登录契约锁云平台进行签署
             * (2)生成内嵌页面签署链接进行签署(下方生成的链接)
             * (3)JS-SDK签署(仅支持个人)
             */
            SdkResponse <PageUrlResult> pageUrl = this.GerenateSignUrl(client, contract.Result.Id);

            Console.WriteLine("生成签署方签署页面成功,签署页面:{0}", pageUrl.Result.PageUrl);
            Console.ReadKey();
        }
示例#29
0
        private void button1_Click(object sender, EventArgs e)
        {
            SDKClient client = new SDKClient("192.168.3.196", 10261, "qcu1", "", "lq", "lq", 0);
            var       flag   = client.openConnection();

            while (true)
            {
                try
                {
                    client.sendMessage(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
                finally
                {
                    Thread.Sleep(1000);
                }
            }
        }
示例#30
0
        /// <summary>
        /// 查询签约详情
        /// </summary>
        /// <param name="client"></param>
        /// <param name="contractId">合同编号</param>
        /// <returns></returns>
        public SdkResponse <QueryContractResult> QueryContract(SDKClient client, string contractId)
        {
            QueryContractRequest request = new QueryContractRequest(contractId);
            string response = null;

            try
            {
                response = client.Service(request);
            }
            catch (Exception e)
            {
                throw new Exception("QueryContract失败,失败原因: " + e.Message);
            }

            SdkResponse <QueryContractResult> sdkResponse = HttpJsonConvert.DeserializeResponse <QueryContractResult>(response);

            if (!sdkResponse.Success)
            {
                throw new Exception("QueryContract失败,失败原因: " + sdkResponse.Message);
            }
            return(sdkResponse);
        }