/// <summary> /// 调用蜂鸟配送接口 /// </summary> /// <param name="data"></param> /// <param name="url"></param> /// <returns></returns> public string UseFNApi(object data, string url) { DistributionApiConfig model = DistributionApiConfigBLL.SingleModel.GetModelByRedis(_fnapi_appid); string postdata = PostParam(model.access_token, data); string result = HttpHelper.DoPostJson(url, postdata); return(result); }
/// <summary> /// 蜂鸟订单状态改变回调接口 /// </summary> /// <param name="returnModel"></param> /// <returns></returns> public ActionResult FNnotis(FNApiReponseModel <string> returnModel) { if (returnModel == null || returnModel.data == null || returnModel.data.Length == 0) { LogHelper.WriteInfo(this.GetType(), "蜂鸟回调请求参数为空"); return(Content("")); } string datajson = HttpUtility.UrlDecode(returnModel.data); FNAccepterOrderModel data = JsonConvert.DeserializeObject <FNAccepterOrderModel>(datajson); string urlencodedata = returnModel.data; DistributionApiConfig model = DistributionApiConfigBLL.SingleModel.GetModelByRedis(FNApi._fnapi_appid); string signature = FNApi.SingleModel.GetSign(model.access_token, urlencodedata, returnModel.salt); if (returnModel.signature != signature || data == null) { LogHelper.WriteInfo(this.GetType(), "蜂鸟配送回调签名错误json:" + JsonConvert.SerializeObject(returnModel) + ",解码后:" + datajson); return(Content("")); } FNOrder order = FNOrderBLL.SingleModel.GetModelByOrderNo(data.partner_order_code); if (order == null) { log4net.LogHelper.WriteInfo(this.GetType(), $"蜂鸟订单回调:找不到订单【{data.partner_order_code}】"); return(Content("")); } order.state = data.order_status; order.updatetime = DateTime.Now; order.carrier_driver_name = data.carrier_driver_name; order.carrier_driver_phone = data.carrier_driver_phone; order.description = data.description; bool updatebool = FNOrderBLL.SingleModel.Update(order, "state,updatetime,carrier_driver_name,carrier_driver_phone,description"); if (updatebool && data.order_status == (int)FNOrderEnum.异常) { FNOrderRelation orelationmodel = FNOrderRelationBLL.SingleModel.GetModelUOrderNo(order.partner_order_code); if (orelationmodel == null) { log4net.LogHelper.WriteInfo(this.GetType(), "蜂鸟配送取消订单回调发起退款出错:找不到关联该订单的数据"); return(Content("success")); } bool isSuccess = false; switch (orelationmodel.ordertype) { case (int)TmpType.小程序餐饮模板: FoodGoodsOrder foodGoodOrder = FoodGoodsOrderBLL.SingleModel.GetModel($" Id = {orelationmodel.orderid} "); // and OrderType ={(int)miniAppFoodOrderType.店内点餐 } "); if (foodGoodOrder == null) { LogHelper.WriteInfo(this.GetType(), "蜂鸟配送:找不到订单"); return(Content("success")); } //退款接口 abel if (foodGoodOrder.BuyMode == (int)miniAppBuyMode.微信支付) { isSuccess = FoodGoodsOrderBLL.SingleModel.outOrder(foodGoodOrder, foodGoodOrder.State); } else if (foodGoodOrder.BuyMode == (int)miniAppBuyMode.储值支付) { SaveMoneySetUser userSaveMoney = SaveMoneySetUserBLL.SingleModel.getModelByUserId(foodGoodOrder.UserId) ?? new SaveMoneySetUser(); isSuccess = FoodGoodsOrderBLL.SingleModel.outOrderBySaveMoneyUser(foodGoodOrder, userSaveMoney, foodGoodOrder.State); } break; case (int)TmpType.小程序专业模板: EntGoodsOrder entorder = EntGoodsOrderBLL.SingleModel.GetModel(orelationmodel.orderid); if (entorder == null) { LogHelper.WriteInfo(this.GetType(), "蜂鸟配送取消订单回调发起退款出错:找不到小程序订单数据"); return(Content("success")); } isSuccess = EntGoodsOrderBLL.SingleModel.outOrder(entorder, entorder.State, entorder.BuyMode); if (!isSuccess) { LogHelper.WriteInfo(this.GetType(), "蜂鸟配送取消订单回调发起退款出错:执行退款服务出错"); return(Content("success")); } EntGoodsOrderLogBLL.SingleModel.AddLog(entorder.Id, 0, $"蜂鸟:将订单状态改为:{Enum.GetName(typeof(MiniAppEntOrderState), entorder.State)}"); break; } } return(Content("")); }