diff --git a/controllers/jd_callback.go b/controllers/jd_callback.go index f8c81ab9b..242e823ce 100644 --- a/controllers/jd_callback.go +++ b/controllers/jd_callback.go @@ -1,6 +1,8 @@ package controllers import ( + "bytes" + "io/ioutil" "net/http" "git.rosy.net.cn/baseapi/platformapi/jdapi" @@ -10,6 +12,7 @@ import ( "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego" + "github.com/astaxie/beego/context" ) // Operations about JDOrder @@ -23,10 +26,11 @@ func (c *DjswController) orderStatus(isCancelOrder bool) { var callbackResponse *jdapi.CallbackResponse if isCancelOrder { - obj, callbackResponse = api.JdAPI.GetOrderApplyCancelCallbackMsg(c.Ctx.Input.RequestBody) + obj, callbackResponse = api.JdAPI.GetOrderApplyCancelCallbackMsg(getUsefulRequest(c.Ctx)) } else { - obj, callbackResponse = api.JdAPI.GetOrderCallbackMsg(c.Ctx.Input.RequestBody) + obj, callbackResponse = api.JdAPI.GetOrderCallbackMsg(getUsefulRequest(c.Ctx)) } + globals.SugarLogger.Debug(utils.Format4Output(obj, false)) if callbackResponse == nil { callbackResponse = jd.OnOrderMsg(obj) } @@ -79,7 +83,7 @@ func (c *DjswController) ApplyCancelOrder() { func (c *DjswController) PushDeliveryStatus() { if c.Ctx.Input.Method() == http.MethodPost { - obj, callbackResponse := api.JdAPI.GetOrderDeliveryCallbackMsg(c.Ctx.Input.RequestBody) + obj, callbackResponse := api.JdAPI.GetOrderDeliveryCallbackMsg(getUsefulRequest(c.Ctx)) if callbackResponse == nil { callbackResponse = jd.OnWaybillMsg(obj) } @@ -106,7 +110,7 @@ func (c *DjswController) Token() { func (c *DjswController) StockIsHave() { // globals.SugarLogger.Info(string(c.Ctx.Input.RequestBody)) if c.Ctx.Input.Method() == http.MethodPost { - obj, callbackResponse := api.JdAPI.GetStoreStockCallbackMsg(c.Ctx.Input.RequestBody) + obj, callbackResponse := api.JdAPI.GetStoreStockCallbackMsg(getUsefulRequest(c.Ctx)) if callbackResponse == nil { // globals.SugarLogger.Debugf("StockIsHave, obj:%s", utils.Format4Output(obj, false)) callbackResponse = promotion.OnStoreStockMsg(obj) @@ -120,7 +124,7 @@ func (c *DjswController) StockIsHave() { func (c *DjswController) SinglePromoteCreate() { if c.Ctx.Input.Method() == http.MethodPost { - obj, callbackResponse := api.JdAPI.GetOrderCallbackMsg(c.Ctx.Input.RequestBody) + obj, callbackResponse := api.JdAPI.GetOrderCallbackMsg(getUsefulRequest(c.Ctx)) if callbackResponse == nil { callbackResponse = promotion.OnNewPromotionMsg(obj) } @@ -133,7 +137,7 @@ func (c *DjswController) SinglePromoteCreate() { func (c *DjswController) StoreCrud() { if c.Ctx.Input.Method() == http.MethodPost { - obj, callbackResponse := api.JdAPI.GetOrderCallbackMsg(c.Ctx.Input.RequestBody) + obj, callbackResponse := api.JdAPI.GetOrderCallbackMsg(getUsefulRequest(c.Ctx)) if callbackResponse == nil { callbackResponse = jd.OnStoreMsg(obj) } @@ -157,7 +161,7 @@ func (c *DjswController) transferResponse(inCallbackResponse *jdapi.CallbackResp func (c *DjswController) afterSaleBillStatus() { var obj *jdapi.CallbackOrderMsg var callbackResponse *jdapi.CallbackResponse - obj, callbackResponse = api.JdAPI.GetOrderCallbackMsg(c.Ctx.Input.RequestBody) + obj, callbackResponse = api.JdAPI.GetOrderCallbackMsg(getUsefulRequest(c.Ctx)) if callbackResponse == nil { callbackResponse = jd.OnAfterSaleMsg(obj) } @@ -176,3 +180,8 @@ func (c *DjswController) AfterSaleBillStatus() { func (c *DjswController) OrderAccounting() { c.afterSaleBillStatus() } + +func getUsefulRequest(ctx *context.Context) *http.Request { + ctx.Request.Body = ioutil.NopCloser(bytes.NewReader(ctx.Input.RequestBody)) + return ctx.Request +}