using System; using System.Globalization; using BWP.ABCClient.B2C; using BWP.ABCClient.Businesses.Type; using BWP.ABCClient.Exceptions; namespace BWP.ABCClient.Businesses { public class B2CReceivingPayment : BusinessBase { public B2CReceivingPayment() : base(BusinessTypes.B2C) { RequestObj = PaymentRequest.New(); } public string OrderUrl { get; set; } public string OrderRemarks { get; set; } public string PaymentUrl { 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(); PaymentUrl = ResponseObj.Message.TrxResponse.PaymentURL; } protected override void BeforeRequest() { if (string.IsNullOrEmpty(SequenceNo)) { throw new Exception("交易流水号不能为空,SequenceNo"); } if (string.IsNullOrEmpty(ResultNotifyURL)) { throw new Exception("接受交易结果信息Url不能为空,ResultNotifyURL"); } if (Date == null) { throw new Exception("交易日期不能为空,Date"); } RequestObj.Message.Merchant.MerchantID = MerchantID; RequestObj.Message.TrxRequest.Order.OrderNo = SequenceNo; RequestObj.Message.TrxRequest.Order.OrderAmount = Amount.ToString("f2"); RequestObj.Message.TrxRequest.Order.OrderDesc = OrderRemarks; RequestObj.Message.TrxRequest.Order.OrderDate = Date.Value.ToString("yyyy/MM/dd", DateTimeFormatInfo.InvariantInfo); RequestObj.Message.TrxRequest.Order.OrderTime = Date.Value.ToString("HH:MM:ss", DateTimeFormatInfo.InvariantInfo); RequestObj.Message.TrxRequest.Order.OrderURL = OrderUrl; RequestObj.Message.TrxRequest.ResultNotifyURL = ResultNotifyURL; RequestObj.Message.TrxRequest.MerchantRemarks = Remarks; } } }