package tonglianpayapi import ( "io/ioutil" "net/http" "git.rosy.net.cn/baseapi/utils" ) const ( MsgTypeUnkown = 0 // 未知 MsgTypePay = "VSP501" // 支付结果回调 (微信 MsgTypeRefund = "VSP503" // 退款结果回调 (微信 MsgTypePayZFB = "VSP511" //支付宝 MsgTypeRefundZFB = "VSP513" TrxStatusSuccess = "0000" // 交易成功 TrxStatusTransaction = "2000" // 支付中 TrxStatusTransaction2 = "2008" // 支付中 OnlinePayStatusSuccess = "SUCCESS" OnlinePayStatusFail = "FAIL" MisStatusSuccess = "Y0000" // 调用成功 ) type CallBackResult struct { AppID string `json:"appID"` OuttrxID string `json:"outtrxID"` TrxCode string `json:"trxCode"` TrxID string `json:"trxID"` TrxAmt string `json:"trxAmt"` TrxDate string `json:"trxDate"` PayTime string `json:"payTime"` ChnlTrxID string `json:"chnlTrxID"` TrxStatus string `json:"trxStatus"` CusID string `json:"cusID"` TermNo string `json:"termNo"` TermBatchid string `json:"termBatchid"` TermTraceno string `json:"termTraceno"` TermAuthno string `json:"termAuthno"` TermRefnum string `json:"termRefnum"` TrxReserved string `json:"trxReserved"` SrcTrxid string `json:"srcTrxid"` CusorderID string `json:"cusorderID"` Acct string `json:"acct"` Fee string `json:"fee"` SignType string `json:"signType"` Cmid string `json:"cmid"` Chnlid string `json:"chnlid"` Sign string `json:"sign"` } func (a *API) GetCallbackMsg(request *http.Request) (call *CallBackResult, err error) { data, err := ioutil.ReadAll(request.Body) if err != nil { return nil, err } values, err := utils.HTTPBody2Values(data, false) if err != nil { return nil, err } mapData := utils.URLValues2Map(values) utils.Map2StructByJson(mapData, &call, false) return call, err } // CallBackResultOnlinePay 扫码支付回调 type CallBackResultOnlinePay struct { AppID string `json:"appID"` OuttrxID string `json:"outtrxID"` TrxCode string `json:"trxCode"` TrxID string `json:"trxID"` TrxAmt string `json:"trxAmt"` TrxDate string `json:"trxDate"` PayTime string `json:"payTime"` ChnlTrxID string `json:"chnlTrxID"` TrxStatus string `json:"trxStatus"` CusID string `json:"cusID"` TermNo string `json:"termNo"` TermBatchid string `json:"termBatchid"` TermTraceno string `json:"termTraceno"` TermAuthno string `json:"termAuthno"` TermRefnum string `json:"termRefnum"` TrxReserved string `json:"trxReserved"` SrcTrxid string `json:"srcTrxid"` CusorderID string `json:"cusorderID"` Acct string `json:"acct"` Fee string `json:"fee"` SignType string `json:"signType"` Cmid string `json:"cmid"` Chnlid string `json:"chnlid"` Sign string `json:"sign"` Initamt string `json:"initamt"` Chnldata string `json:"chnldata"` Accttype string `json:"accttype"` Bankcode string `json:"bankcode"` Logonid string `json:"logonid"` } func (a *API) GetCallbackOnlinePayMsg(request *http.Request) (call *CallBackResultOnlinePay, err error) { data, err := ioutil.ReadAll(request.Body) if err != nil { return nil, err } values, err := utils.HTTPBody2Values(data, false) if err != nil { return nil, err } mapData := utils.URLValues2Map(values) utils.Map2StructByJson(mapData, &call, false) return call, err }