github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mch/pay/closeorder.go (about) 1 package pay 2 3 import ( 4 "github.com/chanxuehong/wechat/mch/core" 5 "github.com/chanxuehong/wechat/util" 6 ) 7 8 // CloseOrder 关闭订单. 9 func CloseOrder(clt *core.Client, req map[string]string) (resp map[string]string, err error) { 10 return clt.PostXML(core.APIBaseURL()+"/pay/closeorder", req) 11 } 12 13 type CloseOrderRequest struct { 14 XMLName struct{} `xml:"xml" json:"-"` 15 16 // 必选参数 17 OutTradeNo string `xml:"out_trade_no"` // 商户系统内部订单号 18 19 // 可选参数 20 NonceStr string `xml:"nonce_str"` // 随机字符串,不长于32位。NOTE: 如果为空则系统会自动生成一个随机字符串。 21 SignType string `xml:"sign_type"` // 签名类型,目前支持HMAC-SHA256和MD5,默认为MD5 22 } 23 24 // CloseOrder2 关闭订单. 25 func CloseOrder2(clt *core.Client, req *CloseOrderRequest) (err error) { 26 m1 := make(map[string]string, 8) 27 m1["out_trade_no"] = req.OutTradeNo 28 if req.NonceStr != "" { 29 m1["nonce_str"] = req.NonceStr 30 } else { 31 m1["nonce_str"] = util.NonceStr() 32 } 33 if req.SignType != "" { 34 m1["sign_type"] = req.SignType 35 } 36 37 _, err = CloseOrder(clt, m1) 38 return 39 }