temp
This commit is contained in:
193
internal/shared/esign/example.go
Normal file
193
internal/shared/esign/example.go
Normal file
@@ -0,0 +1,193 @@
|
||||
package esign
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
)
|
||||
|
||||
// Example 展示如何使用重构后的e签宝SDK
|
||||
func Example() {
|
||||
// 1. 创建配置
|
||||
config, err := NewConfig(
|
||||
"your_app_id",
|
||||
"your_app_secret",
|
||||
"https://smlopenapi.esign.cn",
|
||||
"your_template_id",
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatal("配置创建失败:", err)
|
||||
}
|
||||
|
||||
// 2. 创建客户端
|
||||
client := NewClient(config)
|
||||
|
||||
// 示例1: 简单合同签署流程
|
||||
fmt.Println("=== 示例1: 简单合同签署流程 ===")
|
||||
contractReq := &ContractSigningRequest{
|
||||
CompanyName: "测试公司",
|
||||
UnifiedSocialCode: "123456789012345678",
|
||||
LegalPersonName: "张三",
|
||||
LegalPersonID: "123456789012345678",
|
||||
LegalPersonPhone: "13800138000",
|
||||
}
|
||||
|
||||
result, err := client.GenerateContractSigning(contractReq)
|
||||
if err != nil {
|
||||
log.Printf("合同签署失败: %v", err)
|
||||
} else {
|
||||
fmt.Printf("合同签署成功: %+v\n", result)
|
||||
}
|
||||
|
||||
// 示例2: 企业认证流程
|
||||
fmt.Println("\n=== 示例2: 企业认证流程 ===")
|
||||
authReq := &EnterpriseAuthRequest{
|
||||
CompanyName: "测试公司",
|
||||
UnifiedSocialCode: "123456789012345678",
|
||||
LegalPersonName: "张三",
|
||||
LegalPersonID: "123456789012345678",
|
||||
TransactorName: "李四",
|
||||
TransactorMobile: "13800138001",
|
||||
TransactorID: "123456789012345679",
|
||||
}
|
||||
|
||||
authResult, err := client.GenerateEnterpriseAuth(authReq)
|
||||
if err != nil {
|
||||
log.Printf("企业认证失败: %v", err)
|
||||
} else {
|
||||
fmt.Printf("企业认证成功: %+v\n", authResult)
|
||||
}
|
||||
|
||||
// 示例3: 分步操作
|
||||
fmt.Println("\n=== 示例3: 分步操作 ===")
|
||||
|
||||
// 3.1 填写模板
|
||||
templateData := map[string]string{
|
||||
"JFQY": "甲方公司",
|
||||
"JFFR": "甲方法人",
|
||||
"YFQY": "乙方公司",
|
||||
"YFFR": "乙方法人",
|
||||
"QDRQ": "2024年01月01日",
|
||||
}
|
||||
|
||||
fileID, err := client.FillTemplate(templateData)
|
||||
if err != nil {
|
||||
log.Printf("模板填写失败: %v", err)
|
||||
return
|
||||
}
|
||||
fmt.Printf("模板填写成功,文件ID: %s\n", fileID)
|
||||
|
||||
// 3.2 创建签署流程
|
||||
signFlowReq := &CreateSignFlowRequest{
|
||||
FileID: fileID.FileID,
|
||||
SignerAccount: "123456789012345678",
|
||||
SignerName: "乙方公司",
|
||||
TransactorPhone: "13800138000",
|
||||
TransactorName: "乙方法人",
|
||||
TransactorIDCardNum: "123456789012345678",
|
||||
}
|
||||
|
||||
signFlowID, err := client.CreateSignFlow(signFlowReq)
|
||||
if err != nil {
|
||||
log.Printf("创建签署流程失败: %v", err)
|
||||
return
|
||||
}
|
||||
fmt.Printf("签署流程创建成功,流程ID: %s\n", signFlowID)
|
||||
|
||||
// 3.3 获取签署链接
|
||||
signURL, shortURL, err := client.GetSignURL(signFlowID, "13800138000", "乙方公司")
|
||||
if err != nil {
|
||||
log.Printf("获取签署链接失败: %v", err)
|
||||
return
|
||||
}
|
||||
fmt.Printf("签署链接: %s\n", signURL)
|
||||
fmt.Printf("短链接: %s\n", shortURL)
|
||||
|
||||
// 3.4 查询签署状态
|
||||
status, err := client.GetSignFlowStatus(signFlowID)
|
||||
if err != nil {
|
||||
log.Printf("查询签署状态失败: %v", err)
|
||||
return
|
||||
}
|
||||
fmt.Printf("签署状态: %s\n", status)
|
||||
|
||||
// 3.5 检查是否完成
|
||||
completed, err := client.IsSignFlowCompleted(signFlowID)
|
||||
if err != nil {
|
||||
log.Printf("检查签署状态失败: %v", err)
|
||||
return
|
||||
}
|
||||
fmt.Printf("签署是否完成: %t\n", completed)
|
||||
}
|
||||
|
||||
// ExampleBasicUsage 基础用法示例
|
||||
func ExampleBasicUsage() {
|
||||
// 最简单的用法 - 一行代码完成合同签署
|
||||
config, _ := NewConfig("app_id", "app_secret", "server_url", "template_id")
|
||||
client := NewClient(config)
|
||||
|
||||
// 快速合同签署
|
||||
result, err := client.GenerateContractSigning(&ContractSigningRequest{
|
||||
CompanyName: "我的公司",
|
||||
UnifiedSocialCode: "123456789012345678",
|
||||
LegalPersonName: "张三",
|
||||
LegalPersonID: "123456789012345678",
|
||||
LegalPersonPhone: "13800138000",
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
log.Fatal("签署失败:", err)
|
||||
}
|
||||
|
||||
fmt.Printf("请访问以下链接进行签署: %s\n", result.SignURL)
|
||||
}
|
||||
|
||||
// ExampleWithCustomData 自定义数据示例
|
||||
func ExampleWithCustomData() {
|
||||
config, _ := NewConfig("app_id", "app_secret", "server_url", "template_id")
|
||||
client := NewClient(config)
|
||||
|
||||
// 使用自定义模板数据
|
||||
customData := map[string]string{
|
||||
"custom_field_1": "自定义值1",
|
||||
"custom_field_2": "自定义值2",
|
||||
"contract_date": "2024年01月01日",
|
||||
}
|
||||
|
||||
result, err := client.GenerateContractSigning(&ContractSigningRequest{
|
||||
CompanyName: "我的公司",
|
||||
UnifiedSocialCode: "123456789012345678",
|
||||
LegalPersonName: "张三",
|
||||
LegalPersonID: "123456789012345678",
|
||||
LegalPersonPhone: "13800138000",
|
||||
CustomData: customData,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
log.Fatal("签署失败:", err)
|
||||
}
|
||||
|
||||
fmt.Printf("自定义合同签署链接: %s\n", result.SignURL)
|
||||
}
|
||||
|
||||
// ExampleEnterpriseAuth 企业认证示例
|
||||
func ExampleEnterpriseAuth() {
|
||||
config, _ := NewConfig("app_id", "app_secret", "server_url", "template_id")
|
||||
client := NewClient(config)
|
||||
|
||||
// 企业认证
|
||||
authResult, err := client.GenerateEnterpriseAuth(&EnterpriseAuthRequest{
|
||||
CompanyName: "我的公司",
|
||||
UnifiedSocialCode: "123456789012345678",
|
||||
LegalPersonName: "张三",
|
||||
LegalPersonID: "123456789012345678",
|
||||
TransactorName: "李四",
|
||||
TransactorMobile: "13800138001",
|
||||
TransactorID: "123456789012345679",
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
log.Fatal("企业认证失败:", err)
|
||||
}
|
||||
|
||||
fmt.Printf("请访问以下链接进行企业认证: %s\n", authResult.AuthURL)
|
||||
}
|
||||
Reference in New Issue
Block a user