using System;
|
|
using BWP.ABCClient.B2B;
|
|
using BWP.ABCClient.Businesses.Type;
|
|
using BWP.ABCClient.Exceptions;
|
|
|
|
namespace BWP.ABCClient.Businesses
|
|
{
|
|
public class B2BDealQuery : BusinessBase<QueryTrnxRequest, QueryTrnxResponse>
|
|
{
|
|
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
|
|
}
|
|
}
|