using System; using System.Globalization; using BWP.ABCClient.B2B; using BWP.ABCClient.Businesses.Type; using BWP.ABCClient.Exceptions; namespace BWP.ABCClient.Businesses { public class B2BReceivingPayment : BusinessBase { public B2BReceivingPayment() : base(BusinessTypes.B2B) { RequestObj = FundTransferRequest.New(); } public string AccountNo { get; set; } public string AccountName { get; set; } public string AccountBank { get; set; } public string Operator { 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 (AccountNo == null) { throw new Exception("收款方帐号不能为空,AccountNo"); } if (Date == null) { throw new Exception("交易日期不能为空,Date"); } RequestObj.Message.Merchant.MerchantID = MerchantID; RequestObj.Message.TrxRequest.AccountDB.AccountDBNo = AccountNo; RequestObj.Message.TrxRequest.AccountDB.AccountDBName = AccountName; RequestObj.Message.TrxRequest.AccountDB.AccountDBBank = AccountBank; RequestObj.Message.TrxRequest.TrnxDate = Date.Value.ToString("yyyy/MM/dd", DateTimeFormatInfo.InvariantInfo); RequestObj.Message.TrxRequest.TrnxTime = Date.Value.ToString("HH:MM:ss", DateTimeFormatInfo.InvariantInfo); RequestObj.Message.TrxRequest.TrnxAmount = Amount.ToString("f2"); RequestObj.Message.TrxRequest.MerchantTrnxNo = SequenceNo; RequestObj.Message.TrxRequest.TrnxInfo.TrnxOpr = Operator; RequestObj.Message.TrxRequest.ResultNotifyURL = ResultNotifyURL; RequestObj.Message.TrxRequest.MerchantRemarks = Remarks; } } }