Auth.NET API 不支持直接退款超过180天的订单,需要使用另外一种方式——发起一个 Extended Credit Request 请求来退款。 示例代码如下:
var merchantAuthenticationType = new merchantAuthenticationType { name = ApiLoginID, ItemElementName = ItemChoiceType.transactionKey, Item = ApiTransactionKey };
var creditCard = new creditCardType { cardNumber = "4111111111111111", expirationDate = "0722" };
var transactionRequest = new transactionRequestType { transactionType = transactionTypeEnum.refundTransaction.ToString(), amount = 100.00m, payment = new paymentType { Item = creditCard }, refTransId = "12345", customer = new customerDataType { id = "12345", email = "test.email@email.com" } };
var extendedCreditRequest = new extendedCreditRequest { merchantAuthentication = merchantAuthenticationType, transactionRequest = transactionRequest };
var controller = new createTransactionController(extendedCreditRequest); controller.Execute();
var response = controller.GetApiResponse();
if (response != null && response.messages.resultCode == messageTypeEnum.Ok) { Console.WriteLine("Refund Transaction Successful!"); } else if (response != null) { Console.WriteLine("Refund Transaction Failed!"); Console.WriteLine("Error Code: " + response.messages.message[0].code); Console.WriteLine("Error Message: " + response.messages.message[0].text); }