冲突处理
This commit is contained in:
@@ -6,15 +6,17 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *API) FakeOrderQuery(jdParams map[string]interface{}) (retVal []interface{}, totalCount int, err error) {
|
func (a *API) FakeOrderQuery(jdParams map[string]interface{}) (retVal []*OrderInfo, totalCount int, err error) {
|
||||||
retVal, totalCount, err = a.AccessAPIHavePage("order/orderQuery", jdParams, nil, nil, nil)
|
orderList, totalCount, err := a.AccessAPIHavePage("order/orderQuery", jdParams, nil, nil, nil)
|
||||||
|
if err == nil {
|
||||||
|
err = JdMap2StructByJson(orderList, &retVal, true)
|
||||||
|
}
|
||||||
return retVal, totalCount, err
|
return retVal, totalCount, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *API) FakeQuerySingleOrder(orderId, deliveryStationNo string) (map[string]interface{}, error) {
|
func (a *API) FakeQuerySingleOrder(orderId string) (*OrderInfo, error) {
|
||||||
jdParams := make(map[string]interface{})
|
jdParams := make(map[string]interface{})
|
||||||
jdParams["orderId"] = orderId
|
jdParams["orderId"] = orderId
|
||||||
jdParams["deliveryStationNo "] = deliveryStationNo
|
|
||||||
result, _, err := a.FakeOrderQuery(jdParams)
|
result, _, err := a.FakeOrderQuery(jdParams)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -22,7 +24,7 @@ func (a *API) FakeQuerySingleOrder(orderId, deliveryStationNo string) (map[strin
|
|||||||
if len(result) == 0 {
|
if len(result) == 0 {
|
||||||
return nil, ErrCanNotFindOrder
|
return nil, ErrCanNotFindOrder
|
||||||
}
|
}
|
||||||
return result[0].(map[string]interface{}), nil
|
return result[0], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *API) FakeBatchUpdateCurrentQtys(trackInfo, outStationNo, stationNo string, skuStockList []*SkuStock, userPin string) (responseList []*StoreSkuBatchUpdateResponse, err error) {
|
func (a *API) FakeBatchUpdateCurrentQtys(trackInfo, outStationNo, stationNo string, skuStockList []*SkuStock, userPin string) (responseList []*StoreSkuBatchUpdateResponse, err error) {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
func TestFakeOrderQuery(t *testing.T) {
|
func TestFakeOrderQuery(t *testing.T) {
|
||||||
api := NewFakeJD("ndslkv9asl@djf_n7askdjfk$", "http://test.jxc4.com/qqqq")
|
api := NewFakeJD("ndslkv9asl@djf_n7askdjfk$", "http://test.jxc4.com/qqqq")
|
||||||
|
|
||||||
retVal, err := api.FakeQuerySingleOrder("2000483691000741", "11866256")
|
retVal, err := api.FakeQuerySingleOrder("2002984074001021")
|
||||||
t.Log(utils.Format4Output(retVal, false))
|
t.Log(utils.Format4Output(retVal, false))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
|
|||||||
@@ -171,8 +171,9 @@ func (a *API) getCallbackMsg(msgBody string) (msg *CallbackMsg, callbackResponse
|
|||||||
reqInfo := utils.Interface2String(mapData["req_info"])
|
reqInfo := utils.Interface2String(mapData["req_info"])
|
||||||
transactionID := utils.Interface2String(mapData["transaction_id"])
|
transactionID := utils.Interface2String(mapData["transaction_id"])
|
||||||
if reqInfo == "" && transactionID != "" { // 对于支付结果通知进行签名验证(退款结果通知不支持验证)
|
if reqInfo == "" && transactionID != "" { // 对于支付结果通知进行签名验证(退款结果通知不支持验证)
|
||||||
|
sigType := utils.Interface2String(mapData[sigTypeKey])
|
||||||
sign := utils.Interface2String(mapData[sigKey])
|
sign := utils.Interface2String(mapData[sigKey])
|
||||||
desiredSign := a.signParam(mapData)
|
desiredSign := a.signParam(sigType, mapData)
|
||||||
if desiredSign != sign {
|
if desiredSign != sign {
|
||||||
return nil, Err2CallbackResponse(fmt.Errorf("desiredSign:%s <> sign:%s", desiredSign, sign), "")
|
return nil, Err2CallbackResponse(fmt.Errorf("desiredSign:%s <> sign:%s", desiredSign, sign), "")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package wxpayapi
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"crypto/hmac"
|
||||||
|
"crypto/md5"
|
||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
@@ -26,9 +28,10 @@ const (
|
|||||||
ResponseCodeSuccess = "SUCCESS"
|
ResponseCodeSuccess = "SUCCESS"
|
||||||
ResponseCodeFail = "FAIL"
|
ResponseCodeFail = "FAIL"
|
||||||
|
|
||||||
sigKey = "sign"
|
sigKey = "sign"
|
||||||
sigTypeKey = "sign_type"
|
sigTypeKey = "sign_type"
|
||||||
sigType = "HMAC-SHA256"
|
sigTypeMd5 = "MD5"
|
||||||
|
sigTypeSha256 = "HMAC-SHA256"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -328,7 +331,7 @@ func (a *API) GetMchID() string {
|
|||||||
return a.mchID
|
return a.mchID
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *API) signParam(params map[string]interface{}) (sig string) {
|
func (a *API) signParam(signType string, params map[string]interface{}) (sig string) {
|
||||||
var valueList []string
|
var valueList []string
|
||||||
for k, v := range params {
|
for k, v := range params {
|
||||||
if k != sigKey {
|
if k != sigKey {
|
||||||
@@ -340,7 +343,17 @@ func (a *API) signParam(params map[string]interface{}) (sig string) {
|
|||||||
sort.Sort(sort.StringSlice(valueList))
|
sort.Sort(sort.StringSlice(valueList))
|
||||||
valueList = append(valueList, fmt.Sprintf("key=%s", a.appKey))
|
valueList = append(valueList, fmt.Sprintf("key=%s", a.appKey))
|
||||||
sig = strings.Join(valueList, "&")
|
sig = strings.Join(valueList, "&")
|
||||||
sig = fmt.Sprintf("%X", sha256.Sum256([]byte(sig)))
|
var binSig []byte
|
||||||
|
if signType == sigTypeMd5 {
|
||||||
|
binSig2 := md5.Sum([]byte(sig))
|
||||||
|
binSig = binSig2[:]
|
||||||
|
} else if signType == sigTypeSha256 {
|
||||||
|
mac := hmac.New(sha256.New, []byte(a.appKey))
|
||||||
|
mac.Write([]byte(sig))
|
||||||
|
binSig = mac.Sum(nil)
|
||||||
|
}
|
||||||
|
sig = fmt.Sprintf("%X", binSig)
|
||||||
|
// baseapi.SugarLogger.Debug(sig)
|
||||||
return sig
|
return sig
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,8 +369,10 @@ func (a *API) AccessAPI(action string, requestParam IRequestBase) (retVal map[st
|
|||||||
requestParam.SetAppID(a.appID)
|
requestParam.SetAppID(a.appID)
|
||||||
requestParam.SetMchID(a.mchID)
|
requestParam.SetMchID(a.mchID)
|
||||||
requestParam.SetNonceStr(utils.GetUUID())
|
requestParam.SetNonceStr(utils.GetUUID())
|
||||||
|
sigType := sigTypeSha256
|
||||||
|
// sigType := sigTypeMd5
|
||||||
requestParam.SetSignType(sigType)
|
requestParam.SetSignType(sigType)
|
||||||
signStr := a.signParam(utils.Struct2FlatMap(requestParam))
|
signStr := a.signParam(sigType, utils.Struct2FlatMap(requestParam))
|
||||||
requestParam.SetSign(signStr)
|
requestParam.SetSign(signStr)
|
||||||
|
|
||||||
fullURL := utils.GenerateGetURL(prodURL, action, nil)
|
fullURL := utils.GenerateGetURL(prodURL, action, nil)
|
||||||
|
|||||||
Reference in New Issue
Block a user