// 委托 package unionpay import ( "encoding/json" "fmt" ) // EntrustEstablish 建立委托 func EntrustEstablish(mi *MerchantInfo, oi OrderInfo, ci CustomerInfo) (res ReqRespose, err error) { /* var ( accNo []byte encrypted []byte signature []byte values = &url.Values{} args = make(map[string]string) ) args["version"] = "5.1.0" // 版本号 args["encoding"] = "utf-8" // 编码方式 args["signMethod"] = "01" // 签名方法 args["txnType"] = "72" // 交易类型 args["txnSubType"] = "11" // 交易子类 args["bizType"] = "000501" // 业务类型 args["accessType"] = "0" // 接入类型 args["channelType"] = "07" // 渠道类型 args["encryptCertId"] = mi.SerialNumber() // 验签证书序列号 args["certId"] = mi.SerialNumber() // 证书序列号 args["merId"] = mi.MerID // 商户代码 args["orderId"] = oi.OrderID // 商户订单号,8-32位数字字母,不能含“-”或“_” args["txnTime"] = oi.TxnTime // 订单发送时间,格式为YYYYMMDDhhmmss,取北京时间 accNo, err = mi.Encrypt([]byte(ci.CardNo)) if err != nil { return } args["accNo"] = base64Encode(accNo) encrypted, err = mi.EncryptCustomerInfo(ci) if err != nil { return } args["customerInfo"] = ci.String(encrypted) signature, err = mi.Sign([]byte(createLinkString(args, true, false))) if err != nil { return } args["signature"] = base64Encode(signature) // 签名 for k, v := range args { values.Add(k, v) } res, err = post(BaseHost+ReqBackTrans, []byte(values.Encode())) if err != nil { return } // */ var body string args := newParams(oi, ci) args.BizType = "000501" // 业务类型 代收产品 args.TxnType = "72" // 交易类型 取值:72 args.TxnSubType = "11" // 交易子类, 11 建立委托关系 body, err = args.ToBody(mi, ci) if err != nil { return } res, err = post(BaseHost+ReqBackTrans, []byte(body)) if err != nil { return } _, err = res.Ok() bs, _ := json.Marshal(res) fmt.Println(string(bs)) return }