/// <summary> /// 商家充值成功方法 /// 窦海超 /// 2015年5月29日 16:00:07 /// </summary> /// <param name="model"></param> private dynamic BusinessRechargeSusess(Ets.Model.DataModel.Business.BusinessRechargeModel model) { #region 充值、流水、商家金额实体组装 BusinessBalanceRecord businessBalanceRecord = new BusinessBalanceRecord() { Amount = model.PayAmount, BusinessId = model.BusinessId, Operator = model.PayBy, RecordType = BusinessBalanceRecordRecordType.Recharge.GetHashCode(), RelationNo = model.OrderNo, Remark = "商家客户端充值", Status = 1, WithwardId = 0 }; UpdateForWithdrawPM forWithdrawPM = new UpdateForWithdrawPM() { Id = model.BusinessId, Money = model.PayAmount }; #endregion using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { new BusinessRechargeDao().Insert(model); //写入充值 new BusinessDao().UpdateForWithdrawC(forWithdrawPM); //更新商家金额、可提现金额 new BusinessBalanceRecordDao().Insert(businessBalanceRecord); //写商家流水 tran.Complete(); } #region jpush推送 Task.Factory.StartNew(() => { JPushModel jpushModel = new JPushModel() { Alert = string.Concat("已成功充值", model.PayAmount, "元"), City = string.Empty, RegistrationId = model.BusinessId.ToString(),//发送商家ID TagId = 1, Title = "充值成功提醒" }; Ets.Service.Provider.MyPush.Push.PushMessage(jpushModel); }); #endregion string success = string.Concat("成功完成商家充值订单号:", model.OrderNo); LogHelper.LogWriter(success); return("success"); }
/// <summary> /// 商家充值回调方法 /// 窦海超 /// 2015年5月29日 15:17:07 /// </summary> /// <returns></returns> public dynamic BusinessRechargeNotify() { try { #region 参数绑定 var request = System.Web.HttpContext.Current.Request; AlipayNotifyData notify = new AlipayNotifyData(); notify.buyer_email = request["buyer_email"]; notify.trade_status = request["trade_status"]; notify.out_trade_no = request["out_trade_no"]; notify.trade_no = request["trade_no"]; notify.total_fee = ParseHelper.ToDecimal(request["total_fee"], 0); notify.out_biz_no = ParseHelper.ToInt(request["body"], 0);//businessid #endregion //如果状态为空或状态不等于同步成功和异步成功就认为是错误 if (string.IsNullOrEmpty(notify.trade_status) || notify.total_fee <= 0) { string fail = string.Concat("商家充值状态是空或金额<=0"); LogHelper.LogWriter(fail); return("fail"); } #region 回调完成状态 if (notify.trade_status == "TRADE_SUCCESS" || notify.trade_status == "TRADE_FINISHED") { if (new BusinessRechargeDao().Check(notify.trade_no)) { //如果存在就退出,这里写的很扯,因为支付宝要的是success不带双引号. //但WEBAPI直接返回时带引号,所以现在要去库里查一次。 //回头找到原因一定要改 return("success"); } string orderNo = notify.out_trade_no; if (string.IsNullOrEmpty(orderNo) || notify.out_biz_no <= 0) { string fail = string.Concat("商家充值错误啦orderNo:", orderNo, ",商家ID为:", notify.out_biz_no); LogHelper.LogWriter(fail); return("fail"); } Ets.Model.DataModel.Business.BusinessRechargeModel businessRechargeModel = new Ets.Model.DataModel.Business.BusinessRechargeModel() { BusinessId = notify.out_biz_no, OrderNo = orderNo, OriginalOrderNo = notify.trade_no,//第三方的订单号 PayAmount = notify.total_fee, PayBy = notify.buyer_email, PayStatus = 1, PayType = 1 }; BusinessRechargeSusess(businessRechargeModel); } #endregion } catch (Exception ex) { LogHelper.LogWriter(ex, "Alipay自动返回异常"); return("fail"); } return("fail"); }