合同相关接口详解 - lvxunDev/yunhetong-DotNet-sdk GitHub Wiki
云合同的SDK
有两个重点,一个用户,一个是合同。
- 合同实体类
合同实体类为LxContract
,具体字段如下:
字段 | 说明 |
---|---|
appId | 应用Id |
title | 合同标题,小于64位的字符串 |
defContractNo | 自定义合同编号,方便客户管理合同的一个参数,可以随便传 |
templateId | 合同模板id,在 SDK 开发平台上传了合同模板之后返回的一个 Id |
params | 合同模板相关占位符,array类型,key 是${XXX}的形式,value 是相应的值 |
- 合同参与方实体类
合同参与方的实体类为 LxContractActor
,这个类继承自LxUser
,LxUser
中有的字段他都有,除此之外,它还有以下字段
字段 | 说明 |
---|---|
autoSign | 是否自动签署合同:1 是;0不是 |
locationName | 签名位置Id |
LxSDKManager
类有下列几个方法可以创建合同:
- 可以通过
syntCreateContract(LxContract contract, LxContractActor[] actors)
创建合同 - 可以通过
public string syntGetTokenWithContract(LxUser currentUser, LxContract contract, LxContractActor[] actors)
方法创建合同并且获取Token
注意此方法获取的token
为第一个参数的user
的token
,若该user
不是合同参与方中的一员,则该用户没有权限查看这个方法生成的合同。
当你想要作废合同的时候,你可以调用LxSDKManager
类实例下的public string invalidContract(String contractId)
方法作废合同。
注意 已经完成(所有参与方都签署了)的合同不支持作废。
当你想要作废合同的时候,你可以调用LxSDKManager
类实例下的public Dictionary<string, Object> downloadContract(string contractId)
方法下载合同。当下载成功的时候会返回一个 Zip
的文件流,失败的话会返回具体的失败信息,示例代码如下
using LxSDK.Library;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace LxSDK.example
{
/// <summary>
/// dowmloadContract 的摘要说明
/// </summary>
public class dowmloadContract : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
LxSDKManager sdkManager = R.getLxSDKManager();
string cid = context.Request.Params.Get("contractId");
if (cid == null)
{
context.Response.Write("合同id不能为空");
return;
}
Dictionary<string, Object> result = sdkManager.downloadContract(cid);
if ((bool)result["success"])
{
context.Response.ContentType = "application/octet-stream";
context.Response.AddHeader("Accept-Ranges", "bytes");
context.Response.AddHeader("Accept-Length", ((byte[])result["body"]).Length.ToString());
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + cid + ".zip");
context.Response.BinaryWrite((byte[])result["body"]);
}
else
{
context.Response.ContentType = "Content-type: application/json;charset=utf-8";
context.Response.Write(result["body"]);
}
return;
}
public bool IsReusable
{
get
{
return false;
}
}
}
}