合同页面
1 签署页面
请求地址:/v2/contract/pageurl
请求方法:POST
请求格式:application/json;charset=UTF-8
请求参数:
参数 | 类型 | 必须 | 描述 |
---|---|---|---|
contractId | String | 否 | 合同ID,合同ID和业务ID不能同时为空 |
bizId | String | 否 | 业务ID,合同ID和业务ID不能同时为空 |
tenantName | String | 否 | 子公司名称,若使用业务ID获取签署页面,且合同是以子公司身份创建的,则需要传递该值,用于确定合同主体 |
user | User | 是 | 操作人 |
callbackPage | String | 否 | 回调页面 |
User(个人用户):
参数 | 类型 | 必须 | 描述 |
---|---|---|---|
contact | String | 是 | 联系方式 |
contactType | String | 是 | 联系类型:MOBILE(手机号), EMAIL(邮箱),EMPLOYEEID(员工ID),NUMBER(员工编号) |
返回参数:
参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
message | String | 响应消息 |
result | Result | 签署页面信息 |
Result(签署页面数据):
参数 | 类型 | 描述 |
---|---|---|
pageUrl | String | 文件签署页面 |
响应码(全局响应码请查看文档末“全局响应码”):
响应码 | 描述 |
---|---|
1110 | NO VIEW PERMISSION,没有查看权限; 用户没有权限查看合同。 |
请求示例:
Http示例
POST /v2/contract/pageurl HTTP/1.1
Host: [host]
x-qys-open-timestamp: [替换为请求头生成的TimeStamp]
x-qys-open-signature: [替换为请求头生成的Signature]
x-qys-open-accesstoken: [替换为请求头生成的Token]
Content-Type: application/json
{
"contractId": "2591540368898105360",
"bizId": null,
"user": {
"contact": "10100000000",
"contactType": "MOBILE"
},
"callbackPage": null
}
Java示例
// 初始化sdkClient
String serverUrl = "https://openapi.qiyuesuo.cn";
String accessKey = "替换为您申请的开放平台App Token";
String accessSecret = "替换为您申请的开放平台App Secret";
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
// 合同页面
ContractPageRequest request = new ContractPageRequest(2589382258757710050L,
new User("10100000000", "MOBILE"), "");
String response = sdkClient.service(request);
SdkResponse<ContractPageResult> responseObj = JSONUtils.toQysResponse(response, ContractPageResult.class);
if(responseObj.getCode() == 0) {
ContractPageResult result = responseObj.getResult();
logger.info("合同页面地址为:{}", result.getPageUrl());
} else {
logger.info("请求失败,错误码:{},错误信息:{}", responseObj.getCode(), responseObj.getMessage());
}
C#示例
// 初始化sdkClient
string serverUrl = "https://openapi.qiyuesuo.cn";
string accessKey = "替换为您申请的开放平台App Token";
string accessSecret = "替换为您申请的开放平台App Secret";
SDKClient client = new SDKClient(accessKey, accessSecret, serverUrl);
ContractPageRequest request = new ContractPageRequest();
request.ContractId = contractId; //内嵌页面签署合同ID
request.User = new User("10100000000", "MOBILE"); //内嵌页面签署人信息
string response = null;
try
{
response = client.Service(request);
}
catch (Exception e)
{
throw new Exception("生成签署链接请求服务器失败,失败原因:" + e.Message);
}
SdkResponse<PageUrlResult> sdkResponse = HttpJsonConvert.DeserializeResponse<PageUrlResult>(response);
if (!sdkResponse.Code.Equals(0))
{
throw new Exception("生成签署链接失败,失败原因:" + sdkResponse.Message);
}
Console.WriteLine(“生成合同页面成功”);
PHP示例
// 初始化$sdkClient
class Util {
const url = "https://openapi.qiyuesuo.me";
const accessKey = "替换为您申请的开放平台App Token";
const accessSecret = "替换为您申请的开放平台App Secret";
}
$sdkClient = Util::getSDk();
$contractAuditRequest = new ContractAuditRequest();
$contractAuditRequest->setContractId('2590804900506210559');
$audutOperator = new User();
$audutOperator->setContact('10100000000');
$audutOperator->setContactType('MOBILE');
$contractAuditRequest->setEmployee($audutOperator);
$contractAuditRequest->setPass(true);
$contractAuditRequest->setComment('同意');
$result = $sdkClient->service($contractAuditRequest);
print_r($result);
return $result;
Python示例
# 初始化SdkClient
url = "https://openapi.qiyuesuo.cn"
accessToken = '替换为您申请的开放平台App Token'
accessSecret = '替换为您申请的开放平台App Secret'
sdkClient = SdkClient(url, accessToken, accessSecret)
# 组装合同页面请求
page_request = ContractPageRequest(draft_contractid)
sign_user = User()
sign_user.set_contact("10100000000")
sign_user.set_contactType("MOBILE")
page_request.set_user(sign_user)
response = sdkClient.request(page_request)
page_mapper = json.loads(response)
if page_mapper['code'] != 0:
raise Exception('签署链接生成失败,失败原因:', page_mapper['message'])
page_result = page_mapper['result']
print('签署链接签署成功,链接:', page_result['pageUrl'])
2 浏览页面
请求地址:/v2/contract/viewurl
请求方法:GET
请求参数:
参数 | 类型 | 必须 | 描述 |
---|---|---|---|
contractId | String | 否 | 合同ID,合同ID和业务ID不能同时为空 |
bizId | String | 否 | 业务ID,合同ID和业务ID不能同时为空 |
tenantName | String | 否 | 子公司名称,若使用业务ID获取浏览页面,且合同是以子公司身份创建的,则需要传递该值,用于确定合同主体 |
返回参数:
参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
message | String | 响应消息 |
result | Result | 签署页面信息 |
Result(浏览页面数据):
参数 | 类型 | 描述 |
---|---|---|
pageUrl | String | 文件签署页面 |
响应码(全局响应码请查看文档末“全局响应码”):
响应码 | 描述 |
---|---|
1401 | DOCUMENT REQUIRED,合同不包含任何文件不允许查看 |
请求示例:
Http示例
GET /v2/contract/viewurl?contractId=2604642423930777609 HTTP/1.1
Host: [host]
x-qys-open-timestamp: [替换为请求头生成的TimeStamp]
x-qys-open-signature: [替换为请求头生成的Signature]
x-qys-open-accesstoken: [替换为请求头生成的Token]
Java示例
// 初始化sdkClient
String serverUrl = "https://openapi.qiyuesuo.cn";
String accessKey = "替换为您申请的开放平台App Token";
String accessSecret = "替换为您申请的开放平台App Secret";
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
ContractViewPageRequest request=new ContractViewPageRequest(2604642423930777609L);
String response = sdkClient.service(request);
SdkResponse<ContractPageResult> responseObj = JSONUtils.toQysResponse(response, ContractPageResult.class);
if(responseObj.getCode() == 0) {
ContractPageResult result = responseObj.getResult();
logger.info("合同页面地址为:{}", result.getPageUrl());
} else {
logger.info("请求失败,错误码:{},错误信息:{}", responseObj.getCode(), responseObj.getMessage());
}
C#示例
// 初始化sdkClient
string serverUrl = "https://openapi.qiyuesuo.cn";
string accessKey = "替换为您申请的开放平台App Token";
string accessSecret = "替换为您申请的开放平台App Secret";
SDKClient client = new SDKClient(accessKey, accessSecret, serverUrl);
ContractViewPageRequest request = new ContractViewPageRequest();
request.ContractId = "2604642423930777609";
string response = null;
try
{
response = client.Service(request);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
SdkResponse<PageUrlResult> responseObject = HttpJsonConvert.DeserializeResponse<PageUrlResult>(response);
Console.WriteLine(HttpJsonConvert.SerializeObject(responseObject));
PHP示例
// 初始化$sdkClient
class Util {
const url = "https://openapi.qiyuesuo.cn";
const accessKey = "替换为您申请的开放平台App Token";
const accessSecret = "替换为您申请的开放平台App Secret";
}
$sdkClient = Util::getSDk();
$contractViewPageRequest = new ContractViewPageRequest();
$contractViewPageRequest->setContractId('2605319579798344136');
$contractViewPageRequest->setBizId('12345678');
$result = $sdkClient->service($contractViewPageRequest);
print_r($result);
Python示例
# 初始化SdkClient
url = "https://openapi.qiyuesuo.cn"
accessToken = '替换为您申请的开放平台App Token'
accessSecret = '替换为您申请的开放平台App Secret'
sdkClient = SdkClient(url, accessToken, accessSecret)
view_page_request = ContractViewPageRequest()
view_page_request.set_contractId('2604642423930777609')
view_page_response = sdkClient.request(view_page_request)
print('合同浏览 \n', str(view_page_response), '\n')
3.获取短链接
请求地址:/v2/contract/shorturl
请求方法:GET
请求参数:
参数 | 类型 | 必须 | 描述 |
---|---|---|---|
contractId | String | 否 | 合同ID,合同ID和业务ID不能同时为空 |
bizId | String | 否 | 业务ID,合同ID和业务ID不能同时为空 |
tenantName | String | 否 | 子公司名称,若使用业务ID获取访问短链接,且合同是以子公司身份创建的,则需要传递该值,用于确定合同主体 |
返回参数:
参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
message | String | 响应消息 |
result | Result | 短链接信息 |
Result(浏览页面数据):
参数 | 类型 | 描述 |
---|---|---|
shorturl | String | 访问的短链接 |
响应码(全局响应码请查看文档末“全局响应码”):
响应码 | 描述 |
---|---|
1101 | INVALID CONTRACT STATUS,合同不能为草稿 |
请求示例:
Http示例
GET /v2/contract/shorturl?contractId=2628932548523143169 HTTP/1.1
Host: [host]
x-qys-open-timestamp: [替换为请求头生成的TimeStamp]
x-qys-open-signature: [替换为请求头生成的Signature]
x-qys-open-accesstoken: [替换为请求头生成的Token]
Java示例
// 初始化sdkClient
String serverUrl = "https://openapi.qiyuesuo.cn";
String accessKey = "替换为您申请的开放平台App Token";
String accessSecret = "替换为您申请的开放平台App Secret";
SdkClient sdkClient = new SdkClient(serverUrl, accessKey, accessSecret);
ContractShorturlRequest request=new ContractShorturlRequest(2628932548523143169L);
String response = sdkClient.service(request);
SdkResponse responseObj = JSONUtils.toQysResponse(response, ContractShorturlResult.class);
if(responseObj.getCode() == 0) {
ContractShorturlResult result = responseObj.getResult();
logger.info("合同短链接为:{}", result.getShorturl());
} else {
logger.info("请求失败,错误码:{},错误信息:{}", responseObj.getCode(), responseObj.getMessage());
}