package kd100 import ( "applet/app/comm/utils" "encoding/json" "strings" "time" ) // 快递100云打印对接 type kd100CloudPrint struct { Method string `json:"method"` Key string `json:"key"` //客户授权key Secret string `json:"secret"` //授权secret Sign string `json:"sign"` // 签名 Timestamp string `json:"t"` // 时间戳 PrintParam map[string]interface{} `json:"param"` // 其他参数 ReturnData ReturnDataResp `json:"return_data"` // 返回数据 } type ReturnDataResp struct { ReturnCode string `json:"returnCode"` Message string `json:"message"` Data interface{} `json:"data"` Result bool `json:"result"` } //type PrintParam struct { // OrderId string `json:"orderId"` // 订单ID,系统内唯一 // TempId string `json:"tempid"` // 模板id // Height string `json:"height"` // 高 // Width string `json:"width"` // 宽 // Salt string `json:"salt"` // 加盐 // CallBackUrl string `json:"callBackUrl"` // 回调地址 // Siid string `json:"siid"` // kd100打印机设备号 //} const printUrl = "https://poll.kuaidi100.com/printapi/printtask.do" func NewKd100Print(key, secret string, printParam map[string]interface{}) *kd100CloudPrint { nowStr := utils.AnyToString(time.Now().Unix()) return &kd100CloudPrint{ Method: "printOrder", Key: key, Secret: secret, Timestamp: nowStr, PrintParam: printParam, } } func (kd *kd100CloudPrint) CreateSign() *kd100CloudPrint { kd.Sign = strings.ToUpper(utils.Md5(utils.SerializeStr(kd.PrintParam) + kd.Timestamp + kd.Key + kd.Secret)) return kd } func (kd *kd100CloudPrint) Send() error { reqBody := map[string]string{ "method": kd.Method, "key": kd.Key, "sign": kd.Sign, "t": kd.Timestamp, "param": utils.SerializeStr(kd.PrintParam), } resp, err := utils.CurlPost(printUrl, reqBody, nil) if err != nil { return err } err = json.Unmarshal(resp, &kd.ReturnData) if err != nil { return err } return nil }