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.
 

56 lines
2.1 KiB

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<PaymentRequest, PaymentResponse>
{
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;
}
}
}