You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

53 lines
1.7 KiB

using System;
using BWP.ABCClient.B2C;
using BWP.ABCClient.Businesses.Type;
using BWP.ABCClient.Exceptions;
namespace BWP.ABCClient.Businesses
{
public class B2COrderQuery : BusinessBase<QueryOrderRequest, QueryOrderResponse>
{
public B2COrderQuery()
: base(BusinessTypes.B2C)
{
RequestObj = QueryOrderRequest.New();
}
public string OrderStatus { get; set; }
public bool OrderIsFinished { 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();
OrderStatus = ResponseObj.Message.TrxResponse.Order.OrderStatus;
OrderIsFinished = OrderStatus == OrderStatusEnum.PAY || OrderStatus == OrderStatusEnum.SETTLED;
}
protected override void BeforeRequest()
{
if (string.IsNullOrEmpty(SequenceNo)) {
throw new Exception("查询的交易号不能为空,SequenceNo");
}
RequestObj.Message.Merchant.MerchantID = MerchantID;
RequestObj.Message.TrxRequest.OrderNo = SequenceNo;
}
}
public class OrderStatusEnum
{
public const string CANCEL = "00";
public const string ISSUE = "99";
public const string NEW = "01";
public const string PAY = "03";
public const string REFUND = "05";
public const string SETTLED = "04";
public const string WAIT = "02";
}
}