using System; using BWP.ABCClient.B2B; using BWP.ABCClient.Businesses.Type; using BWP.ABCClient.Exceptions; namespace BWP.ABCClient.Businesses { public class B2BDealQuery : BusinessBase { public B2BDealQuery() : base(BusinessTypes.B2B) { RequestObj = QueryTrnxRequest.New(); } public string MerchantTrnxNo { get; set; } public DealStatusEnum DealStatus { get; set; } public bool DealIsSuccess { get; set; } protected override void AfterRequest() { Log.AddNewLine(string.Format("交易结果:[{0}]", ResponseObj.Message.TrxResponse.ReturnCode)); Log.AddNewLine(string.Format("返回信息:[{0}]", ResponseObj.Message.TrxResponse.ErrorMessage)); if (ResponseObj.Message.TrxResponse.ReturnCode != "0000") { Log.Commit(); throw new ResponseException(ResponseObj.Message.TrxResponse.ReturnCode, ResponseObj.Message.TrxResponse.ErrorMessage); } Log.Commit(); DealIsSuccess = ResponseObj.Message.TrxResponse.TrnxStatus == ((int)DealStatusEnum.交易成功).ToString(); DealStatusEnum dealStatus; if (DealStatusEnum.TryParse(ResponseObj.Message.TrxResponse.TrnxStatus, out dealStatus)) { DealStatus = dealStatus; } } protected override void BeforeRequest() { if (string.IsNullOrEmpty(MerchantTrnxNo)) { throw new Exception("查询的交易号不能为空,B2BGathering.MerchantTrnxNo"); } RequestObj.Message.Merchant.MerchantID = MerchantID; RequestObj.Message.TrxRequest.MerchantTrnxNo = MerchantTrnxNo; RequestObj.Message.TrxRequest.MerchantRemarks = Remarks; } } public enum DealStatusEnum { 交易作废 = 5, 复核中 = 1, 交易失败 = 3, 交易无响应 = 9, 原始请求 = 0, 交易被驳回 = 4, 交易成功 = 2 } }