|
|
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<FundTransferRequest, FundTransferResponse>
|
|
|
{
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
}
|