1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package utils
import (
"bytes"
"encoding/json"
"fmt"
"gin-vue-admin/global"
"io/ioutil"
"net/http"
"time"
)
var ProjectId = global.GVA_CONFIG.Eqb.ProjectId
var ProjectSecret = global.GVA_CONFIG.Eqb.ProjectSecret
var GetUploadurl = global.GVA_CONFIG.Eqb.ApiHost + "file/uploadurl" //获取文件直传地址
var AddPersonUrl = "account/create/person" //创建个人账户地址
var SavePersonUrl = global.GVA_CONFIG.Eqb.ApiHost + "account/person/update" //更新个人账号地址
var AddOrganizeUrl = global.GVA_CONFIG.Eqb.ApiHost + "account/create/organize/common" //创建企业账户地址
var SaveOrganizeUrl = global.GVA_CONFIG.Eqb.ApiHost + "ccount/organize/update" //更新企业账户地址
var SilentSignUrl = global.GVA_CONFIG.Eqb.ApiHost + "account/platform/silentsign" //设置静默签署授权地址
var RevokeSilentsignUrl = global.GVA_CONFIG.Eqb.ApiHost + "account/platform/revokeSilentsign" //撤回静默签署
var AddcontractUrl = global.GVA_CONFIG.Eqb.ApiHost + "doc/createbyfilekey" //本地文件创建合同地址
var CreatebyfilekeyUrl = global.GVA_CONFIG.Eqb.ApiHost + "template/createbyfilekey" //创建模板地址
var CreatebytemplateUrl = global.GVA_CONFIG.Eqb.ApiHost + "doc/createbytemplate" //合同模板创建合同地址
var AddProcessUrl = global.GVA_CONFIG.Eqb.ApiHost + "sign/contract/addProcess" //创建合同签署流程
var UserSignTaskUrl = global.GVA_CONFIG.Eqb.ApiHost + "sign/contract/userSignTask" //发起用户自动签署
var UserSignTasksUrl = global.GVA_CONFIG.Eqb.ApiHost + "sign/contracts/platformSignTask" //多文档发起用户自动签署
var PlatformSignTaskUrl = global.GVA_CONFIG.Eqb.ApiHost + "sign/contract/platformSignTask" //发起对接平台自动签署
var FlowGetViewUrl = global.GVA_CONFIG.Eqb.ApiHost + "flow/get/viewurl" //获取签署任务查看地址
var ArchiveProcessUrl = global.GVA_CONFIG.Eqb.ApiHost + "sign/contract/archiveProcess" //归档流程地址
var DetailUrl = global.GVA_CONFIG.Eqb.ApiHost + "sign/contract/detail" //查看地址
var DownloadUrl = global.GVA_CONFIG.Eqb.ApiHost + "sign/download" //签署文件下载地址
var OrgAuthUrl = global.GVA_CONFIG.Eqb.AuthApiHost + "realname/rest/external/organ/orgAuth" //企业验证地址
var InfoAuthUrl = global.GVA_CONFIG.Eqb.AuthApiHost + "realname/rest/external/organ/infoAuth-special" //个体验证地址
var AccessUrl = global.GVA_CONFIG.Eqb.AccessTokenUrl + "?appId=" + global.GVA_CONFIG.Eqb.ProjectId + "&secret=" + global.GVA_CONFIG.Eqb.ProjectSecret + "&grantType=client_credentials"
//创建个人账户
func CreateAccountPerson(req *CreateAccountPersonReq) *CreateAccountPersonReply {
resp := EqbPost(global.GVA_CONFIG.Eqb.ApiHost+AddPersonUrl, req)
reply := new(CreateAccountPersonReply)
UnserislizeJson(resp, reply)
return reply
}
//信息校验
func RequestOrganiza(data RequestOrganizaReq, Status int) {
infoAuth := ""
if Status == 1 {
infoAuth = OrgAuthUrl
} else {
infoAuth = InfoAuthUrl
}
if data.Name != "" && data.LegalName != "" && data.LegalIdno != "" {
resp := EqbAuthPost(infoAuth, data)
reply := new(interface{})
UnserislizeJson(resp, reply)
return
}
}
// 发送POST请求
// url: 请求地址
// data: POST请求提交的数据
// contentType: 请求体格式,如:application/json
// content: 请求放回的内容
func EqbPost(url string, data interface{}) string {
// 超时时间:10秒
client := &http.Client{Timeout: 10 * time.Second}
jsonStr, _ := json.Marshal(data)
fmt.Println(string(jsonStr))
reqest, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
reqest.Header.Add("X-Tsign-Open-App-Id", global.GVA_CONFIG.Eqb.ProjectId)
reqest.Header.Add("X-Tsign-Open-App-Secret", global.GVA_CONFIG.Eqb.ProjectSecret)
reqest.Header.Add("Content-Type", "application/json")
if err != nil {
panic(err)
}
resp, _ := client.Do(reqest)
defer resp.Body.Close()
result, _ := ioutil.ReadAll(resp.Body)
sqlStr := "UPDATE api_log SET reply=? WHERE id=?"
global.GVA_DB.Exec(sqlStr, string(result), 1)
return string(result)
}
// 发送POST请求
// url: 请求地址
// data: POST请求提交的数据
// contentType: 请求体格式,如:application/json
// content: 请求放回的内容
func EqbAuthPost(url string, data interface{}) string {
// 超时时间:10秒
client := &http.Client{Timeout: 10 * time.Second}
jsonStr, _ := json.Marshal(data)
fmt.Println(string(jsonStr))
signature := ComputeHmacSha256(string(jsonStr), ProjectSecret)
reqest, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
reqest.Header.Add("X-timevale-mode", "package")
reqest.Header.Add("X-timevale-project-id", ProjectId)
reqest.Header.Add("X-timevale-signature", signature)
reqest.Header.Add("X-timevale-signature-algorithm", "hmac-sha256")
reqest.Header.Add("Content-Type", "application/json")
if err != nil {
panic(err)
}
resp, _ := client.Do(reqest)
defer resp.Body.Close()
result, _ := ioutil.ReadAll(resp.Body)
return string(result)
}