private IGatewayResponse SendCancelSubscriptionRequest(AuthorizeDotNetRequest request) { var result = string.Empty; IGatewayResponse gatewayResponse; var authentication = new MerchantAuthenticationType(); authentication.name = request.KeyValues[AuthorizeDotNetApi.ApiLogin]; authentication.transactionKey = request.KeyValues[AuthorizeDotNetApi.TransactionKey]; string id = request.KeyValues[AuthorizeDotNetApi.SubscriptionID]; using (var webService = new RevStack.AuthorizeDotNet.net.authorize.api.Service()) { webService.Url = request.PostUrl; ARBCancelSubscriptionResponseType response = webService.ARBCancelSubscription(authentication, long.Parse(id), null); char del = request.KeyValues[AuthorizeDotNetApi.DelimitCharacter].ToCharArray()[0]; IList <string> list = new List <string>(); for (int i = 0; i < response.messages.Length; i++) { result = response.messages[i].text + del; list.Add(response.messages[i].text); } result = result.TrimEnd(del); gatewayResponse = new GatewayResponse(result, del); gatewayResponse.SubscriptionResponse = list; } return(gatewayResponse); }
/// <summary> /// Cancels recurring payment /// </summary> /// <param name="order">Order</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void CancelRecurringPayment(Order order, ref CancelPaymentResult cancelPaymentResult) { InitSettings(); MerchantAuthenticationType authentication = PopulateMerchantAuthentication(); long subscriptionID = 0; long.TryParse(cancelPaymentResult.SubscriptionTransactionId, out subscriptionID); ARBCancelSubscriptionResponseType response = webService.ARBCancelSubscription(authentication, subscriptionID); if (response.resultCode == MessageTypeEnum.Ok) { //ok } else { cancelPaymentResult.Error = "Error cancelling subscription, please contact customer support. " + GetErrors(response); cancelPaymentResult.FullError = "Error cancelling subscription, please contact customer support. " + GetErrors(response); } }