194 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			194 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | 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) | |||
|  | } |