public bool AlipayCallBack(AlipayData alipayData) { var userPayInfo = _uerPayOrderInfoRepository.Get(alipayData.GetValue("out_trade_no")); if (userPayInfo == null) { LogHelper.Logger.Error(string.Format("数据库中不存在单号为{0}的订单", alipayData.GetValue("out_trade_no"))); return(false); } if (!VerifyOrder(alipayData, userPayInfo)) { return(false); } var tradeStatus = alipayData.GetValue("trade_status"); var transactionId = string.Empty; if (alipayData.IsSet("trade_no")) { transactionId = alipayData.GetValue("trade_no"); } if (tradeStatus.Equals("TRADE_SUCCESS") || tradeStatus.Equals("TRADE_FINISHED")) { //支付金额 return(_purchaseServiceRepository.CompleteServiceOrder(new CompleteServiceOrder() { OrderID = alipayData.GetValue("out_trade_no"), Cost = Convert.ToDouble(alipayData.GetValue("invoice_amount")), NewID = OrderHelper.GenerateNewId(), PayExtendInfo = alipayData.ToJson(), PayState = tradeStatus, PayOrderID = transactionId, Remarks = "支付宝手机网页支付", }) == 0); } //超时关闭 else if (tradeStatus.Equals("TRADE_CLOSED")) { LogHelper.Logger.Debug("订单超时关闭"); return(_purchaseServiceRepository.UpdateServiceOrder(new UpdateServiceOrder() { ID = alipayData.GetValue("out_trade_no"), PayExtendInfo = alipayData.ToJson(), PayState = tradeStatus, PayOrderID = transactionId, State = 3, }) == 0); } else { return(false); } }
public int CompleteServiceOrder(WxPayData queryData) { string out_trade_no = queryData.GetValue("out_trade_no").ToString().Substring(10); //取出提交的数据包,原样返回 //object attachData = payData.GetValue("attach"); //交易状态 string trade_state = queryData.GetValue("trade_state").ToString(); //微信支付订单号 string transaction_id = null; if (queryData.IsSet("transaction_id")) { transaction_id = queryData.GetValue("transaction_id").ToString(); } var orderInfo = _userPayOrdeRepository.FirstOrDefault(p => p.Id == out_trade_no); if (trade_state == "SUCCESS")//交易成功 { //支付金额 return(_purchaseServiceRepository.CompleteServiceOrder(new CompleteServiceOrder() { OrderID = out_trade_no, Cost = Convert.ToDouble(queryData.GetValue("total_fee")) / 100, NewID = OrderHelper.GenerateNewId(), PayExtendInfo = queryData.ToJson(), PayState = trade_state, PayOrderID = transaction_id, Remarks = "微信公众号支付", })); } else if (trade_state == "USERPAYING")//正在支付 { var result = _purchaseServiceRepository.UpdateServiceOrder(new UpdateServiceOrder() { ID = out_trade_no, PayExtendInfo = queryData.ToJson(), PayState = trade_state, PayOrderID = transaction_id, State = null }); if (result != 0) { LogHelper.Logger.Error("更新订单失败"); } return(-4); } else if (trade_state == "NOTPAY") { //算作超时关闭订单 if (orderInfo != null && orderInfo.CreateTime.AddMinutes(20) < DateTime.Now) { var result1 = _purchaseServiceRepository.UpdateServiceOrder(new UpdateServiceOrder() { ID = out_trade_no, PayExtendInfo = queryData.ToJson(), PayState = trade_state, PayOrderID = transaction_id, State = 3 }); if (result1 != 0) { LogHelper.Logger.Error("更新订单失败"); } LogHelper.Logger.Debug("超时关闭订单"); return(-4); } else { //继续等待,还不算结束 var result1 = _purchaseServiceRepository.UpdateServiceOrder(new UpdateServiceOrder() { ID = out_trade_no, PayExtendInfo = queryData.ToJson(), PayState = trade_state, PayOrderID = transaction_id, State = null }); return(-4); } } else { var result1 = _purchaseServiceRepository.UpdateServiceOrder(new UpdateServiceOrder() { ID = out_trade_no, PayExtendInfo = queryData.ToJson(), PayState = trade_state, PayOrderID = transaction_id, State = 3 }); if (result1 != 0) { LogHelper.Logger.Error("更新订单失败"); } LogHelper.Logger.Error("支付失败"); return(-4); } }