diff --git a/business/partner/purchase/mtwm/callback.go b/business/partner/purchase/mtwm/callback.go index 6575a7a49..ff1c42e4b 100644 --- a/business/partner/purchase/mtwm/callback.go +++ b/business/partner/purchase/mtwm/callback.go @@ -7,14 +7,18 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/globals" + "net/http" + "strings" ) // 美团回调接口 -func OnCallbackMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse) { +func OnCallbackMsg(msg *mtwmapi.CallbackMsg, msgType string) (response *mtwmapi.CallbackResponse) { // 获取平台门店id - //store, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), GetVendorStoreIDFromMsg(msg), model.VendorIDMTWM, GetVendorAppIdFromMsg(msg)) + //_, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), GetVendorStoreIDFromMsg(msg), model.VendorIDMTWM, GetVendorAppIdFromMsg(msg)) //if err != nil && strings.Contains(err.Error(), "no row found") { - // + // forwardOrderToGy(msg, msgType) + // return mtwmapi.SuccessResponse //} if CurPurchaseHandler != nil { if msg.Cmd == mtwmapi.MsgTypeStoreStatusChanged || msg.Cmd == mtwmapi.MsgTypeStoreAuditStatusChanged { @@ -60,27 +64,54 @@ func GetVendorAppIdFromMsg(msg *mtwmapi.CallbackMsg) string { return msg.FormData.Get(mtwmapi.KeyAppID) } -// -//func forwardOrderToGy(msg *mtwmapi.CallbackMsg) { -// cl := http.Client{} -// params := make(map[string]interface{}) -// params["mt_peisong_id"] = msg.MtPeisongID -// params["courier_name"] = msg.CourierName -// params["delivery_id"] = msg.DeliveryID -// params["appkey"] = msg.AppKey -// params["order_id"] = msg.OrderID -// params["courier_phone"] = msg.CourierPhone -// params["status"] = msg.Status -// params["timestamp"] = msg.Timestamp -// params["cancel_reason_id"] = msg.CancelReasonId -// params["cancel_reason"] = msg.CancelReason -// urls := utils.Map2URLValues(params) -// sign := signParams(urls) -// params["sign"] = sign -// request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode())) -// if err != nil { -// return -// } -// request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") -// cl.Do(request) -//} +func forwardOrderToGy(msg *mtwmapi.CallbackMsg, msgType string) { + cl := http.Client{} + callbackUrl := GetMsgCallBackUrl(msgType, msg.AppID) + request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtwm/"+callbackUrl, strings.NewReader(msg.FormData.Encode())) + if err != nil { + return + } + request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") + cl.Do(request) +} + +func GetMsgCallBackUrl(msgType, appId string) string { + interfaceUrl := "" + switch msgType { + case mtwmapi.MsgTypeWaybillStatus: + interfaceUrl = "/waybillStatus" + case mtwmapi.MsgTypeNewOrder: + interfaceUrl = "/newOrder" + case mtwmapi.MsgTypeOrderAccepted: + interfaceUrl = "/orderAccepted" + case mtwmapi.MsgTypeOrderFinished: + interfaceUrl = "/orderFinished" + case mtwmapi.MsgTypeOrderFinancial: + interfaceUrl = "/orderFinancial" + case mtwmapi.MsgTypeOrderCanceled: + interfaceUrl = "/orderCanceled" + case mtwmapi.MsgTypeUserUrgeOrder: + interfaceUrl = "/userUrgeOrder" + case mtwmapi.MsgTypePrivateNumberDowngrade: + interfaceUrl = "/numberDowngrade" + case mtwmapi.MsgTypeOrderModified: + interfaceUrl = "/orderModified" + case mtwmapi.MsgTypeOrderRefund: + interfaceUrl = "/orderRefund" + case mtwmapi.MsgTypeOrderPartialRefund: + interfaceUrl = "/orderPartialRefund" + case mtwmapi.MsgTypeOrderFinishedPickup: + interfaceUrl = "/orderFinishedPickup" + case mtwmapi.MsgTypeStoreStatusChanged: + interfaceUrl = "/storeStatusChanged" + case mtwmapi.MsgTypeStoreAuditStatusChanged: + interfaceUrl = "/storeAuditStatusChanged" + case mtwmapi.MsgTypeSkuDelete: + interfaceUrl = "/skuDelete" + case mtwmapi.MsgTypeStoreBind: + interfaceUrl = "/storeBind" + default: + globals.SugarLogger.Errorf("美团超市[app_id :=%s ,callbackUrl := %s ]回调推送到果园错误,回调地址不正确", appId, msgType) + } + return interfaceUrl +} diff --git a/controllers/auth2.go b/controllers/auth2.go index ca91c579a..6d2d8cbf0 100644 --- a/controllers/auth2.go +++ b/controllers/auth2.go @@ -225,14 +225,14 @@ func (c *Auth2Controller) WeixinMPOAuth2() { } } if params.Block != "" { - if moblie := params.Block[strings.LastIndex(params.Block, "=")+1:]; moblie != "" { - if user, err := dao.GetUserByID(dao.GetDB(), "mobile", moblie); err == nil { + if mobile := params.Block[strings.LastIndex(params.Block, "=")+1:]; mobile != "" { + if user, err := dao.GetUserByID(dao.GetDB(), "mobile", mobile); err == nil { if user != nil { authInfo.AuthBindInfo.UserID = user.UserID authInfo.AuthBindInfo.AuthBind.UserID = user.UserID auth2.AddAuthBind(user, authInfo) } else { - return retVal, errCode, fmt.Errorf("未查询到用户!mobile :%v", moblie) + return retVal, errCode, fmt.Errorf("未查询到用户!mobile :%v", mobile) } } } @@ -241,10 +241,9 @@ func (c *Auth2Controller) WeixinMPOAuth2() { params.Block = params.Block[:strings.LastIndex(params.Block, "?")] } redirectURL = fmt.Sprintf("%s?info=%s", params.Block, base64.StdEncoding.EncodeToString(utils.MustMarshal(callResult))) - globals.SugarLogger.Debugf("===redirectURL=== %s", redirectURL) - globals.SugarLogger.Debugf("===retVal=== %s", utils.Format4Output(retVal, false)) return retVal, model.ErrorCodeIgnore, err }) + globals.SugarLogger.Debugf("redirectURL=====: %s", redirectURL) c.Redirect(redirectURL, http.StatusTemporaryRedirect) } diff --git a/controllers/mtwm_callback.go b/controllers/mtwm_callback.go index c498901aa..c505227cc 100644 --- a/controllers/mtwm_callback.go +++ b/controllers/mtwm_callback.go @@ -15,7 +15,7 @@ func (c *MtwmController) onCallbackMsg(msgType string) { c.Data["json"] = mtwmapi.Err2CallbackResponse(nil, "") msg, callbackResponse := api.MtwmAPI.GetCallbackMsg(c.Ctx.Request) if callbackResponse == nil { - callbackResponse = mtwm.OnCallbackMsg(msg) + callbackResponse = mtwm.OnCallbackMsg(msg, msgType) if callbackResponse == nil { callbackResponse = mtwmapi.Err2CallbackResponse(nil, "") }