1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // 委托
- 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
- }
|