添加wxpay回调消息处理
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"net/http"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
@@ -86,25 +87,6 @@ func (r *RequestBase) SetSignType(signType string) {
|
||||
r.SignType = signType
|
||||
}
|
||||
|
||||
type ResponseResult struct {
|
||||
// XMLName xml.Name `json:"-" xml:"xml"`
|
||||
|
||||
ReturnCode string `json:"return_code" xml:"return_code"`
|
||||
ReturnMsg string `json:"return_msg" xml:"return_msg"`
|
||||
|
||||
AppID string `json:"appid" xml:"appid"`
|
||||
DeviceInfo string `json:"device_info,omitempty" xml:"device_info,omitempty"`
|
||||
MchID string `json:"mch_id" xml:"mch_id"`
|
||||
NonceStr string `json:"nonce_str" xml:"nonce_str"`
|
||||
Sign string `json:"sign" xml:"sign"`
|
||||
ResultCode string `json:"result_code" xml:"result_code"`
|
||||
ErrCode string `json:"err_code,omitempty" xml:"err_code,omitempty"`
|
||||
ErrCodeDes string `json:"err_code_des,omitempty" xml:"err_code_des,omitempty"`
|
||||
|
||||
SignType string `json:"sign_type,omitempty" xml:"sign_type,omitempty"`
|
||||
OpenID string `json:"openid,omitempty" xml:"openid,omitempty"`
|
||||
}
|
||||
|
||||
type OrderQueryParam struct {
|
||||
RequestBase
|
||||
TransactionID string `json:"transaction_id" xml:"transaction_id"`
|
||||
@@ -225,11 +207,6 @@ func (a *API) signParam(params map[string]interface{}) (sig string) {
|
||||
return sig
|
||||
}
|
||||
|
||||
// func unmarshalXML(data []byte, result interface{}) error {
|
||||
// d := xml.NewDecoder(bytes.NewReader(data))
|
||||
// return d.Decode(result)
|
||||
// }
|
||||
|
||||
func mustMarshalXML(obj interface{}) []byte {
|
||||
byteArr, err := xml.Marshal(obj)
|
||||
if err != nil {
|
||||
@@ -263,57 +240,6 @@ func (a *API) AccessAPI(action string, requestParam IRequestBase) (retVal map[st
|
||||
return retVal, err
|
||||
}
|
||||
|
||||
// func (a *API) checkResult(xmlStr string) (result *ResponseResult, errLevel string, err error) {
|
||||
// err = unmarshalXML([]byte(xmlStr), &result)
|
||||
// if err != nil {
|
||||
// errLevel = platformapi.ErrLevelGeneralFail
|
||||
// } else {
|
||||
// if result.ReturnCode != ResponseCodeSuccess {
|
||||
// errLevel = platformapi.ErrLevelGeneralFail
|
||||
// err = utils.NewErrorCode(result.ReturnMsg, result.ReturnCode)
|
||||
// result = nil
|
||||
// } else {
|
||||
// // if result.ResultCode != ResponseCodeSuccess {
|
||||
// // errLevel = platformapi.ErrLevelGeneralFail
|
||||
// // err = utils.NewErrorCode(result.ErrCodeDes, result.ErrCode)
|
||||
// // result = nil
|
||||
// // } else {
|
||||
// // }
|
||||
// }
|
||||
// }
|
||||
// return result, errLevel, err
|
||||
// }
|
||||
|
||||
// func (a *API) AccessAPIByMap(action string, params map[string]interface{}) (retVal map[string]interface{}, err error) {
|
||||
// params2 := utils.MergeMaps(params, map[string]interface{}{
|
||||
// "appid": a.appID,
|
||||
// "mch_id": a.mchID,
|
||||
// "nonce_str": utils.GetUUID(),
|
||||
// "sign_type": sigType,
|
||||
// })
|
||||
// params2[sigKey] = a.signParam(params2)
|
||||
|
||||
// fullURL := utils.GenerateGetURL(prodURL, action, nil)
|
||||
// xmlBytes, err := mxj.Map(params2).Xml("xml")
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
||||
// func() *http.Request {
|
||||
// request, _ := http.NewRequest(http.MethodPost, fullURL, bytes.NewReader(xmlBytes))
|
||||
// return request
|
||||
// },
|
||||
// a.config,
|
||||
// func(response *http.Response, bodyStr string, jsonResult1 map[string]interface{}) (errLevel string, err error) {
|
||||
// if jsonResult1 == nil {
|
||||
// return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil")
|
||||
// }
|
||||
// retVal, errLevel, err = a.checkResultAsMap(jsonResult1[platformapi.KeyData].(string))
|
||||
// return errLevel, err
|
||||
// })
|
||||
// return retVal, err
|
||||
// }
|
||||
|
||||
func (a *API) checkResultAsMap(xmlStr string) (result map[string]interface{}, errLevel string, err error) {
|
||||
mv, err := mxj.NewMapXml([]byte(xmlStr))
|
||||
if err != nil {
|
||||
@@ -341,6 +267,15 @@ func SceneInfoList2String(sceneList []*CreateOrderSceneInfo) (str string) {
|
||||
return string(utils.MustMarshal(sceneList))
|
||||
}
|
||||
|
||||
func Time2PayTime(t time.Time) (str string) {
|
||||
return t.Format("20060102150405")
|
||||
}
|
||||
|
||||
func PayTime2Time(str string) (t time.Time) {
|
||||
t, _ = time.ParseInLocation("20060102150405", str, time.Local)
|
||||
return t
|
||||
}
|
||||
|
||||
func (a *API) OrderQuery(transactionID, outTradeNo string) (orderInfo *OrderInfo, err error) {
|
||||
param := &OrderQueryParam{
|
||||
TransactionID: transactionID,
|
||||
|
||||
Reference in New Issue
Block a user