UNPKG

signzg-openapi-sdk

Version:

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

325 lines (250 loc) 9.26 kB
# signzg-openapi-sdk 使用文档 ## 概述 signzg-openapi-sdk 是一个用于对接电子签名API接口的Node.js SDK,提供了简单易用的接口调用方式,支持个人认证、企业认证和合同签署等功能。本SDK封装了底层HTTP请求,使开发者能够轻松集成电子签名功能到自己的应用中。 ## 安装方法 使用npm安装: ```bash npm install signzg-openapi-sdk ``` 使用yarn安装: ```bash yarn add signzg-openapi-sdk ``` ## 快速开始 ### 初始化客户端 SDK提供了三种不同类型的客户端,分别用于处理个人用户、企业用户和合同签署相关的API: ```javascript import { PersonageClient, EnterpriseClient, ContractSignClient } from 'signzg-openapi-sdk'; // 创建个人用户客户端 const personageClient = new PersonageClient({ applicationId: 'YOUR_APPLICATION_ID', // 应用ID businessId: 'YOUR_BUSINESS_ID', // 业务ID baseUrl: 'API_BASE_URL', // API基础URL privateKeys: 'YOUR_PRIVATE_KEY', // 私钥 timeout: 10000, // 可选:请求超时时间(毫秒) headers: { // 可选:自定义请求头 'Custom-Header': 'value' } }); // 创建企业用户客户端 const enterpriseClient = new EnterpriseClient({ applicationId: 'YOUR_APPLICATION_ID', businessId: 'YOUR_BUSINESS_ID', baseUrl: 'API_BASE_URL', privateKeys: 'YOUR_PRIVATE_KEY' }); // 创建合同签署客户端 const contractSignClient = new ContractSignClient({ applicationId: 'YOUR_APPLICATION_ID', businessId: 'YOUR_BUSINESS_ID', baseUrl: 'API_BASE_URL', privateKeys: 'YOUR_PRIVATE_KEY' }); ``` ## 功能模块 ### 1. 个人用户服务 (PersonageClient) 个人用户服务主要提供个人实名认证相关功能。 #### 1.1 获取用户信息 ```javascript // 获取用户信息 const userInfo = await personageClient.getUserInfo({ userId: '123456' // 用户ID }); ``` #### 1.2 获取个人认证页面 ```javascript // 获取个人认证页面(H5和PC) const authPage = await personageClient.postPersonalAuthenticationV2({ userPhone: '13800138000' // 用户手机号 }); ``` #### 1.3 查询个人实名认证结果 ```javascript const authResult = await personageClient.queryAuthenticationResult({ userPhone: '13800138000' // 用户手机号 }); ``` #### 1.4 提交个人实名认证 ```javascript const submitResult = await personageClient.submitAuthentication({ userName: '张三', // 用户姓名 idNumber: '310000199001011234', // 身份证号 phoneCode: '123456', // 手机验证码 userPhone: '13800138000', // 用户手机号 sign: 'signature' // 签名 }); ``` ### 2. 企业用户服务 (EnterpriseClient) 企业用户服务主要提供企业认证相关功能。 #### 2.1 企业入驻并发送认证链接 ```javascript const enterpriseResult = await enterpriseClient.getAddEnterpriseAuthentication({ creditCode: '91310000XXXXXXXX', // 统一社会信用代码 legalPerson: '张三', // 法人姓名 legalPhone: '13800138000', // 法人手机号 enterpriseName: '示例企业有限公司', // 企业名称 callbackInterfaceUrl: 'https://example.com/callback', // 认证通过回调地址 agentName: '李四', // 经办人姓名 agentPhone: '13900139000' // 经办人手机号 }); ``` #### 2.2 机构实名认证 ```javascript const authResult = await enterpriseClient.enterpriseAuth({ operatorUserIdentifier: 'OP12345', // 经办人编号(可选) enterpriseName: '示例企业有限公司', // 企业名称 enterpriseCreditCode: '91310000XXXXXXXX', // 企业社会信用代码 LegalPersonName: '张三', // 企业法人名称 LegalPersonCard: '310000199001011234', // 企业法人身份证 LegalPersonPhone: '13800138000', // 企业法人手机号 LegalPersonPhoneCode: '123456', // 企业法人手机验证码 callbackInterfaceUrl: 'https://example.com/callback', // 认证后异步回调地址(可选) sign: 'signature' // 签名(可选) }); ``` #### 2.3 对公打款认证 ```javascript // 填写企业信息及对公信息 const corpResult = await enterpriseClient.getCorporateAttestation({ operatorUserIdentifier: 'OP12345', // 经办人编号(可选) enterpriseName: '示例企业有限公司', // 企业名称 enterpriseCreditCode: '91310000XXXXXXXX', // 企业社会信用代码 legalPersonName: '张三', // 企业法人名称 legalPersonCard: '310000199001011234', // 企业法人身份证 legalPersonPhone: '13800138000', // 企业法人手机号 cardNo: '6222021234567890123', // 企业对公账号 bankName: '中国工商银行', // 银行名称 callbackInterfaceUrl: 'https://example.com/callback', // 认证后异步回调地址(可选) sign: 'signature' // 签名(可选) }); // 填写打款金额完成认证 const submitResult = await enterpriseClient.getCorporateSubmitAuthentication({ enterpriseIdentifier: 'ENT12345', // 企业编码 remittanceMoney: 0.35, // 打款金额 sign: 'signature' // 签名 }); ``` ### 3. 合同签署服务 (ContractSignClient) 合同签署服务提供合同管理和签署相关功能。 #### 3.1 发起合同签署 ```javascript const signatoryInfos = [ { userName: '李四', // 签署人姓名 userPhone: '13900139000', // 签署人电话 type: 0, // 类型 0-个人 1-企业 signMode: '1', // 签署印章 1用户手绘章 2用户模板章 3企业章 4合同章 5法人章 silenceSign: '0', // 是否需要静默签:0不需要 1需要(个人不支持静默签署) signNumber: 'SN12345' // 签署方编号 }, { userName: '王五', // 签署人姓名 userPhone: '13700137000', // 签署人电话 type: 1, // 类型 0-个人 1-企业 enterpriseName: '合作企业有限公司', // 企业名称(type=1时必传) signMode: '3', // 签署印章 3企业章 silenceSign: '1', // 是否需要静默签:0不需要 1需要 signNumber: 'SN67890' // 签署方编号 } ] const signResult = await contractSignClient.addContractSign({ launchType: 1, // 发起类型 0-个人 1-企业 launchSubject: '13800138000', // 发起用户手机号 launchName: '张三', // 发起用户姓名 launchEnterpriseName: '示例企业有限公司', // 发起企业名称(launchType为1时必传) contractModelNum: 'CM12345', // 模板编号 contractName: '服务协议', // 合同名称 signEndTime: '2023-12-31 23:59:59', // 签署截止时间 signatoryInfos: signatoryInfos, // 签署人信息 signatureType: 0, // 签署类型 0网页链接 1短信链接 inputValues: [ { controlNumber: 'CN12345', // 模板控件编号 writeContent: '合同内容示例' // 填写内容 } ], customerOriginationNumber: 'CON12345', // 客户发起时定义的编号 }); ``` #### 3.2 查询合同详情 ```javascript const contractInfo = await contractSignClient.querySignInfoByContractNum({ contractNum: 'CONTRACT_NUMBER', // 合同编号 }); ``` #### 3.3 查询合同模板 ```javascript const templateList = await contractSignClient.signTemplateList({ isOpen: '1', // 是否启用:0-否,1-是 }); ``` #### 3.4 合同发起预览 ```javascript const previewResult = await contractSignClient.launchPreviewV2({ contractModelNum: "CM12345", // 模板编号 inputValuesJson: JSON.stringify([ // 模板内需填写的内容列表(JSON字符串) { controlNumber: "CN12345", // 模板控件编号 writeContent: "合同内容示例" // 填写内容 } ]), controlNumber: "CN12345", // 模板控件编号 writeContent: "合同内容示例", // 填写内容 customerOriginationNumber: "CON12345" // 客户发起时定义的编号(唯一标识) }); ``` #### 3.5 静默签署盖章 ```javascript const signResult = await contractSignClient.signContractSign({ customerOriginationNumber: 'CON12345', // 客户发起时定义的编号 userPhone: '13800138000' // 发起用户手机号 }); ``` ## 高级用法 ### 错误处理 SDK 内部会对常见的 HTTP 错误进行处理,但建议在调用 API 时使用 try/catch 进行错误捕获: ```javascript try { const result = await personageClient.getUserInfo({ /* 参数 */ }); // 处理成功响应 } catch (error) { console.error('API 调用失败:', error.message); // 处理错误 } ``` ### 自定义请求配置 每个请求方法都支持传入第二个参数来设置特定请求的配置: ```javascript const result = await personageClient.getUserInfo( { userId: 123 }, { timeout: 5000, // 覆盖默认超时时间 headers: { // 添加自定义请求头 'Custom-Request-Header': 'value' } } ); ``` ## 环境要求 - Node.js >= 14.0.0 - npm >= 6.0.0 或 yarn >= 1.0.0 ## 开发与构建 ```bash # 安装依赖 npm install # 构建 npm run build # 代码检查 npm run lint # 运行测试 npm run test # 生成文档 npm run docs # 发布 npm run release ``` ## 更多资源 - [API 参考文档](./API.md) - 详细的 API 参考文档 - [更新日志](./CHANGELOG.md) - 版本更新历史 ## 许可证 MIT