/// <summary> /// 检查 /// </summary> /// <param name="info"></param> /// <returns></returns> public override bool Check(PaylineEntity info) { if (string.IsNullOrEmpty(info.OutNumber) || info.Status != PaylineStatusType.Waiting || string.IsNullOrEmpty(info.Number)) { return(false); } var result = GetPayResult(info.Number); if (result == null || !result.ContainsKey("trade_state")) { return(false); } if (result["trade_state"] == "USERPAYING") { return(false); } if (result["trade_state"] == "SUCCESS") { info.Status = PaylineStatusType.Success; } else { info.Status = PaylineStatusType.Failure; } info.OutNumber = result.ContainsKey("transaction_id") ? result["transaction_id"] : ""; info.SaveType = SaveType.Modify; info.SetProperty(it => it.Status); info.SetProperty(it => it.OutNumber); return(true); }
/// <summary> /// 处理接口 /// </summary> /// <returns></returns> public virtual PaylineEntity Process() { var inputparas = GetResponse(); var info = new PaylineEntity { Number = HttpContext.Current.Request["Number"], OutNumber = HttpContext.Current.Request["OutNumber"], Status = VerifyProcess(inputparas) ? PaylineStatusType.Success : PaylineStatusType.Failure }; info.SetProperty(it => it.OutNumber); info.SetProperty(it => it.Status); info.SaveType = SaveType.Modify; return(info); }
/// <summary> /// /// </summary> /// <param name="info"></param> /// <returns></returns> public virtual bool Check(PaylineEntity info) { if (info.Status == PaylineStatusType.Waiting) { info.Status = PaylineStatusType.Failure; info.SaveType = SaveType.Modify; info.SetProperty(it => it.Status); } return(true); }
/// <summary> /// 检查 /// </summary> /// <param name="info"></param> /// <returns></returns> public override bool Check(PaylineEntity info) { if (string.IsNullOrEmpty(info.OutNumber) || info.Status != PaylineStatusType.Waiting || string.IsNullOrEmpty(info.Number)) { return(false); } var result = GetPayResult(info.Number); if (string.IsNullOrEmpty(result) || result == "WAIT_BUYER_PAY") { return(false); } if (result == "TRADE_SUCCESS" || result == "TRADE_FINISHED") { info.Status = PaylineStatusType.Success; } else { info.Status = PaylineStatusType.Failure; } info.SaveType = SaveType.Modify; info.SetProperty(it => it.Status); return(true); }