UNPKG

signzg-openapi-sdk

Version:

电子签名API客户端SDK,支持个人认证、企业认证和合同签署等功能

557 lines (442 loc) 13.6 kB
# signzg-openapi-node-sdk API 参考文档 本文档详细介绍了 signzg-openapi-node-sdk 提供的所有 API 方法、参数和返回值。 ## 目录 - [配置选项](#配置选项) - [个人用户服务 (PersonageClient)](#个人用户服务-personageclient) - [企业用户服务 (EnterpriseClient)](#企业用户服务-enterpriseclient) - [合同签署服务 (ContractSignClient)](#合同签署服务-contractsignclient) - [错误处理](#错误处理) ## 配置选项 所有客户端实例化时都需要提供配置参数: ```typescript interface ClientConfigOptions { applicationId: string; // 应用ID,必填 businessId: string; // 业务ID,必填 baseUrl: string; // API基础URL,必填 timeout?: number; // 请求超时时间(毫秒),可选,默认10000 headers?: Record<string, string>; // 自定义请求头,可选 } ``` ## 个人用户服务 (PersonageClient) ### 实例化 ```javascript import { PersonageClient } from 'signzg-openapi-node-sdk'; const personageClient = new PersonageClient({ applicationId: 'YOUR_APPLICATION_ID', businessId: 'YOUR_BUSINESS_ID', baseUrl: 'API_BASE_URL' }); ``` ### 方法 #### getUserInfo 获取用户信息。 ```typescript async getUserInfo(params: GetUserInfoParams): Promise<ApiResult> ``` **参数**: - `params.userId`: 用户ID,必填参数,用于指定要查询的用户 - `params.includeFields`: 可选,指定要返回的字段,多个字段用逗号分隔 - `params.includeVerification`: 可选,是否包含用户认证信息 - `params.includeSignatures`: 可选,是否包含用户签名信息 **返回值**: 返回用户信息对象,包含以下字段: - `userId`: 用户ID - `name`: 用户姓名 - `gender`: 用户性别,可能值:'MALE'|'FEMALE'|'OTHER' - `birthDate`: 出生日期(可选) - `idCardNumber`: 身份证号码 - `phoneNumber`: 手机号码 - `email`: 电子邮件(可选) - `address`: 地址(可选) - `avatar`: 头像URL(可选) - `registerTime`: 注册时间 - `lastLoginTime`: 最后登录时间(可选) **示例**: ```javascript const userInfo = await personageClient.getUserInfo({ userId: '123456', includeVerification: true, includeSignatures: true }); ``` #### postPersonalAuthenticationV2 获取个人认证页面接口(H5 和 PC)。 ```typescript async postPersonalAuthenticationV2(params: { userPhone: string; [key: string]: any }): Promise<any> ``` **参数**: - `params.userPhone`: 用户手机号,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回认证页面相关信息 **示例**: ```javascript const authPage = await personageClient.postPersonalAuthenticationV2({ userPhone: '13800138000' }); ``` #### queryAuthenticationResult 个人实名信息认证结果查询。 ```typescript async queryAuthenticationResult(params: { userPhone: string; [key: string]: any }): Promise<any> ``` **参数**: - `params.userPhone`: 用户手机号,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回认证结果信息 **示例**: ```javascript const authResult = await personageClient.queryAuthenticationResult({ userPhone: '13800138000' }); ``` #### submitAuthentication 个人实名认证接口。 ```typescript async submitAuthentication(params: { userName: string; idNumber: string; phoneCode: string; userPhone: string; sign: string; [key: string]: any }): Promise<any> ``` **参数**: - `params.userName`: 用户姓名,必填 - `params.idNumber`: 身份证号,必填 - `params.phoneCode`: 手机验证码,必填 - `params.userPhone`: 用户手机号,必填 - `params.sign`: 签名,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回认证提交结果 **示例**: ```javascript const submitResult = await personageClient.submitAuthentication({ userName: '张三', idNumber: '310000199001011234', phoneCode: '123456', userPhone: '13800138000', sign: 'signature' }); ``` ## 企业用户服务 (EnterpriseClient) ### 实例化 ```javascript import { EnterpriseClient } from 'signzg-openapi-node-sdk'; const enterpriseClient = new EnterpriseClient({ applicationId: 'YOUR_APPLICATION_ID', businessId: 'YOUR_BUSINESS_ID', baseUrl: 'API_BASE_URL' }); ``` ### 方法 #### getAddEnterpriseAuthentication 企业入驻并发送认证链接。 ```typescript getAddEnterpriseAuthentication(params: { creditCode: string; legalPerson: string; legalPhone: string; callbackInterfaceUrl: string; agentName: string; agentPhone: string; enterpriseName: string; [key: string]: any; }): Promise<any> ``` **参数**: - `params.creditCode`: 企业统一社会信用码,必填 - `params.legalPerson`: 企业法人名称,必填 - `params.legalPhone`: 企业法人手机号,必填 - `params.callbackInterfaceUrl`: 企业认证通过回调地址,必填 - `params.agentName`: 经办人姓名,必填 - `params.agentPhone`: 经办人手机号,必填 - `params.enterpriseName`: 企业名称,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回企业认证相关信息 **示例**: ```javascript const enterpriseResult = await enterpriseClient.getAddEnterpriseAuthentication({ creditCode: '91310000XXXXXXXX', legalPerson: '张三', legalPhone: '13800138000', enterpriseName: '示例企业有限公司', callbackInterfaceUrl: 'https://example.com/callback', agentName: '李四', agentPhone: '13900139000' }); ``` ## 合同签署服务 (ContractSignClient) ### 实例化 ```javascript import { ContractSignClient } from 'signzg-openapi-node-sdk'; const contractSignClient = new ContractSignClient({ applicationId: 'YOUR_APPLICATION_ID', businessId: 'YOUR_BUSINESS_ID', baseUrl: 'API_BASE_URL' }); ``` ### 方法 #### addContractSign 指定签署方和签署内容发起签署。 ```typescript addContractSign(params: Record<string, any>): Promise<any> ``` **参数**: - `params`: 合同签署相关参数 **返回值**: - 返回合同签署结果 **示例**: ```javascript const signResult = await contractSignClient.addContractSign({ // 合同签署相关参数 }); ``` #### createContractSign 发起合同签署(静默签)。 ```typescript createContractSign(params: Record<string, any>): Promise<any> ``` **参数**: - `params`: 静默签署相关参数 **返回值**: - 返回静默签署结果 **示例**: ```javascript const directSignResult = await contractSignClient.createContractSign({ // 静默签署相关参数 }); ``` #### withdrawContract 撤回合同。 ```typescript withdrawContract(params: { contractNum: string; userPhone: string; withdrawReason: string; [key: string]: any; }): Promise<any> ``` **参数**: - `params.contractNum`: 合同编号,必填 - `params.userPhone`: 用户手机号,必填 - `params.withdrawReason`: 撤回原因,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回合同撤回结果 **示例**: ```javascript const withdrawResult = await contractSignClient.withdrawContract({ contractNum: 'CONTRACT_NUMBER', userPhone: '13800138000', withdrawReason: '合同信息有误,需要修改' }); ``` #### cancelContract 解约合同。 ```typescript cancelContract(params: { contractNum: string; userPhone: string; relieveReason: string; [key: string]: any; }): Promise<any> ``` **参数**: - `params.contractNum`: 合同编号,必填 - `params.userPhone`: 用户手机号,必填 - `params.relieveReason`: 解约原因,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回合同解约结果 **示例**: ```javascript const cancelResult = await contractSignClient.cancelContract({ contractNum: 'CONTRACT_NUMBER', userPhone: '13800138000', relieveReason: '双方协商一致解约' }); ``` #### agreeCancelContract 同意解约合同。 ```typescript agreeCancelContract(params: { contractNum: string; userPhone: string; [key: string]: any; }): Promise<any> ``` **参数**: - `params.contractNum`: 合同编号,必填 - `params.userPhone`: 用户手机号,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回同意解约结果 **示例**: ```javascript const agreeResult = await contractSignClient.agreeCancelContract({ contractNum: 'CONTRACT_NUMBER', userPhone: '13800138000' }); ``` #### refuseCancelContract 拒绝解约合同。 ```typescript refuseCancelContract(params: { contractNum: string; userPhone: string; refuseReason: string; [key: string]: any; }): Promise<any> ``` **参数**: - `params.contractNum`: 合同编号,必填 - `params.userPhone`: 用户手机号,必填 - `params.refuseReason`: 拒绝解约原因,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回拒绝解约结果 **示例**: ```javascript const refuseResult = await contractSignClient.refuseCancelContract({ contractNum: 'CONTRACT_NUMBER', userPhone: '13800138000', refuseReason: '不同意解约原因' }); ``` #### signTemplateList 查询合同模板。 ```typescript signTemplateList(data: { isOpen?: '0' | '1'; [key: string]: any; }): Promise<any> ``` **参数**: - `data.isOpen`: 是否启用:0-否,1-是,可选 - `data.[key: string]`: 其他可选参数 **返回值**: - 返回合同模板列表 **示例**: ```javascript const templateList = await contractSignClient.signTemplateList({ isOpen: '1' }); ``` #### launchPreview 合同发起预览填。 ```typescript launchPreview(params: { launchType: '0' | '1' | 0 | 1; launchSubject: string; launchEnterpriseName?: string; signEnterpriseName: string; contractModelNum: string; contractName: string; inputValues: string; customerOriginationNumber: string; [key: string]: any; }): Promise<any> ``` **参数**: - `params.launchType`: 发起类型:0-个人,1-企业,必填 - `params.launchSubject`: 发起用户手机号,必填 - `params.launchEnterpriseName`: 发起企业名称(launchType为1时必传),可选 - `params.signEnterpriseName`: 静默签署企业名,必填 - `params.contractModelNum`: 模板编号,必填 - `params.contractName`: 合同名称,必填 - `params.inputValues`: 模板填写内容(多个值用逗号分隔,按文档填写框顺序对应),必填 - `params.customerOriginationNumber`: 客户定义的发起编号,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回预览数据 **示例**: ```javascript const previewResult = await contractSignClient.launchPreview({ launchType: '0', launchSubject: '13800138000', signEnterpriseName: '签署企业名称', contractModelNum: 'TEMPLATE_NUMBER', contractName: '示例合同', inputValues: '值1,值2,值3', customerOriginationNumber: 'CUSTOM_NUMBER' }); ``` #### signTemplateDetails 查询模板详情。 ```typescript signTemplateDetails(params: { contractModelNum: string; sign: string; [key: string]: any; }): Promise<any> ``` **参数**: - `params.contractModelNum`: 模板编号,必填 - `params.sign`: 签名,必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回模板详情 **示例**: ```javascript const templateDetails = await contractSignClient.signTemplateDetails({ contractModelNum: 'TEMPLATE_NUMBER', sign: 'signature' }); ``` #### launchPreviewV2 合同发起预览填(V2版本)。 ```typescript launchPreviewV2(params: { contractModelNum: string; inputValuesJson: string; controlNumber: string; writeContent: string; customerOriginationNumber: string; [key: string]: any; }): Promise<any> ``` **参数**: - `params.contractModelNum`: 模板编号,必填 - `params.inputValuesJson`: 模板内需填写的内容列表(JSON字符串),必填 - `params.controlNumber`: 模板控件编号,必填 - `params.writeContent`: 填写内容,必填 - `params.customerOriginationNumber`: 客户发起时定义的编号(唯一标识),必填 - `params.[key: string]`: 其他可选参数 **返回值**: - 返回预览数据 **示例**: ```javascript const previewResult = await contractSignClient.launchPreviewV2({ contractModelNum: 'TEMPLATE_NUMBER', inputValuesJson: JSON.stringify([{ controlNumber: 'CONTROL_1', writeContent: '内容1' }]), controlNumber: 'CONTROL_1', writeContent: '内容1', customerOriginationNumber: 'CUSTOM_NUMBER' }); ``` ## 错误处理 SDK 内部会对常见的 HTTP 错误进行处理,但建议在调用 API 时使用 try/catch 进行错误捕获: ```javascript try { const result = await personageClient.getUserInfo({ /* 参数 */ }); // 处理成功响应 } catch (error) { console.error('API 调用失败:', error.message); // 处理错误 } ``` 错误类型包括: - 401: 授权失败,需要重新登录 - 403: 没有权限访问该资源 - 404: 请求的资源不存在 - 500: 服务器内部错误 - 网络错误: API无响应,请检查网络连接 - 请求配置错误: 请求参数或配置有误