/// <summary> /// Voids a payment /// </summary> /// <param name="voidPaymentRequest">Request</param> /// <returns>Result</returns> public VoidPaymentResult Void(VoidPaymentRequest voidPaymentRequest) { var result = new VoidPaymentResult(); string transactionId = voidPaymentRequest.Order.AuthorizationTransactionId; if (String.IsNullOrEmpty(transactionId)) { transactionId = voidPaymentRequest.Order.CaptureTransactionId; } var req = new DoVoidReq(); req.DoVoidRequest = new DoVoidRequestType(); req.DoVoidRequest.Version = GetApiVersion(); req.DoVoidRequest.AuthorizationID = transactionId; var service = GetService(); DoVoidResponseType response = service.DoVoid(req); string error; bool success = PaypalHelper.CheckSuccess(response, out error); if (success) { result.NewPaymentStatus = PaymentStatus.Voided; //result.VoidTransactionID = response.RefundTransactionID; } else { result.AddError(error); } return(result); }
/// <summary> /// Voids payment /// </summary> /// <param name="order">Order</param> /// <param name="cancelPaymentResult">Cancel payment result</param> public void Void(Order order, ref CancelPaymentResult cancelPaymentResult) { InitSettings(); string transactionID = cancelPaymentResult.AuthorizationTransactionId; if (String.IsNullOrEmpty(transactionID)) { transactionID = cancelPaymentResult.CaptureTransactionId; } DoVoidReq req = new DoVoidReq(); req.DoVoidRequest = new DoVoidRequestType(); req.DoVoidRequest.Version = this.APIVersion; req.DoVoidRequest.AuthorizationID = transactionID; DoVoidResponseType response = service2.DoVoid(req); string error = string.Empty; bool Success = PaypalHelper.CheckSuccess(response, out error); if (Success) { cancelPaymentResult.PaymentStatus = PaymentStatusEnum.Voided; //cancelPaymentResult.VoidTransactionID = response.RefundTransactionID; } else { cancelPaymentResult.Error = error; } }
/** * */ public DoVoidResponseType DoVoid(DoVoidReq DoVoidReq, string apiUsername) { setStandardParams(DoVoidReq.DoVoidRequest); string resp = call("DoVoid", DoVoidReq.toXMLString(), apiUsername); return(new DoVoidResponseType(resp)); }
/** * AUTO_GENERATED */ public DoVoidResponseType DoVoid(DoVoidReq doVoidReq, string apiUserName) { setStandardParams(doVoidReq.DoVoidRequest); string response = Call("DoVoid", doVoidReq.ToXMLString(), apiUserName); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(response); XmlNode xmlNode = xmlDocument.SelectSingleNode("*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='DoVoidResponse']"); return(new DoVoidResponseType(xmlNode)); }
/// <summary> /// Voids a payment /// </summary> /// <param name="voidPaymentRequest">Request</param> /// <returns>Result</returns> public VoidPaymentResult Void(VoidPaymentRequest voidPaymentRequest) { var result = new VoidPaymentResult(); string transactionId = voidPaymentRequest.Order.AuthorizationTransactionId; if (String.IsNullOrEmpty(transactionId)) { transactionId = voidPaymentRequest.Order.CaptureTransactionId; } var req = new DoVoidReq(); req.DoVoidRequest = new DoVoidRequestType(); req.DoVoidRequest.Version = GetApiVersion(); req.DoVoidRequest.AuthorizationID = transactionId; using (var service2 = new PayPalAPIAASoapBinding()) { if (!_paypalDirectPaymentSettings.UseSandbox) { service2.Url = "https://api-3t.paypal.com/2.0/"; } else { service2.Url = "https://api-3t.sandbox.paypal.com/2.0/"; } service2.RequesterCredentials = new CustomSecurityHeaderType(); service2.RequesterCredentials.Credentials = new UserIdPasswordType(); service2.RequesterCredentials.Credentials.Username = _paypalDirectPaymentSettings.ApiAccountName; service2.RequesterCredentials.Credentials.Password = _paypalDirectPaymentSettings.ApiAccountPassword; service2.RequesterCredentials.Credentials.Signature = _paypalDirectPaymentSettings.Signature; service2.RequesterCredentials.Credentials.Subject = ""; DoVoidResponseType response = service2.DoVoid(req); string error = ""; bool success = PaypalHelper.CheckSuccess(response, out error); if (success) { result.NewPaymentStatus = PaymentStatus.Voided; //result.VoidTransactionID = response.RefundTransactionID; } else { result.AddError(error); } } return(result); }
public ITransactionVoidResult Void(ITransactionVoidRequest request) { //to void a transaction, we'll need capture id or authorization id previously obtained from paypal var transactionId = request.GetParameterAs <string>(PaymentParameterNames.AuthorizationId); if (string.IsNullOrEmpty(transactionId)) { transactionId = request.GetParameterAs <string>(PaymentParameterNames.CaptureId); } //create a capture request for paypal var doVoidRequest = new DoVoidReq() { DoVoidRequest = new DoVoidRequestType() { Version = ApiVersion, AuthorizationID = transactionId } }; //get the service for paypal api var service = GetPayPalApiInterfaceServiceService(); var paypalResponse = service.DoVoid(doVoidRequest); var result = new TransactionResult(); string error; var success = PayPalHelper.ParseResponseSuccess(paypalResponse, out error); if (success) { result.Success = true; result.SetParameter(PaymentParameterNames.RefundId, paypalResponse.AuthorizationID); result.SetParameter(PaymentParameterNames.RefundResult, paypalResponse.Ack); } else { result.SetParameter(PaymentParameterNames.ErrorMessage, error); } return(result); }
/// <summary> /// Voids a payment /// </summary> /// <param name="voidPaymentRequest">Request</param> /// <returns>Result</returns> public override VoidPaymentResult Void(VoidPaymentRequest request) { var result = new VoidPaymentResult() { NewPaymentStatus = request.Order.PaymentStatus }; string transactionId = request.Order.AuthorizationTransactionId; var settings = CommonServices.Settings.LoadSetting <TSetting>(request.Order.StoreId); if (String.IsNullOrEmpty(transactionId)) { transactionId = request.Order.CaptureTransactionId; } var req = new DoVoidReq(); req.DoVoidRequest = new DoVoidRequestType(); req.DoVoidRequest.Version = PayPalHelper.GetApiVersion(); req.DoVoidRequest.AuthorizationID = transactionId; using (var service = new PayPalAPIAASoapBinding()) { service.Url = PayPalHelper.GetPaypalServiceUrl(settings); service.RequesterCredentials = PayPalHelper.GetPaypalApiCredentials(settings); DoVoidResponseType response = service.DoVoid(req); string error = ""; bool success = PayPalHelper.CheckSuccess(_helper, response, out error); if (success) { result.NewPaymentStatus = PaymentStatus.Voided; //result.VoidTransactionID = response.RefundTransactionID; } else { result.AddError(error); } } return(result); }
/// <summary> /// Voids a payment /// </summary> /// <param name="voidPaymentRequest">Request</param> /// <returns>Result</returns> public override VoidPaymentResult Void(VoidPaymentRequest request) { var result = new VoidPaymentResult { NewPaymentStatus = request.Order.PaymentStatus }; var settings = Services.Settings.LoadSetting <TSetting>(request.Order.StoreId); var transactionId = request.Order.AuthorizationTransactionId; if (transactionId.IsEmpty()) { transactionId = request.Order.CaptureTransactionId; } var req = new DoVoidReq(); req.DoVoidRequest = new DoVoidRequestType(); req.DoVoidRequest.Version = ApiVersion; req.DoVoidRequest.AuthorizationID = transactionId; using (var service = GetApiAaService(settings)) { var response = service.DoVoid(req); var error = ""; var success = IsSuccess(response, out error); if (success) { result.NewPaymentStatus = PaymentStatus.Voided; //result.VoidTransactionID = response.RefundTransactionID; } else { result.AddError(error); } } return(result); }
protected void Submit_Click(object sender, EventArgs e) { // Create request object DoVoidRequestType request = new DoVoidRequestType(); // (Required) Original authorization ID specifying the authorization to void or, to void an order, the order ID. // Important: If you are voiding a transaction that has been reauthorized, use the ID from the original authorization, and not the reauthorization. request.AuthorizationID = authorizationId.Value; // (Optional) Informational note about this void that is displayed to the buyer in email and in their transaction history. if (note.Value != string.Empty) { request.Note = note.Value; } // Invoke the API DoVoidReq wrapper = new DoVoidReq(); wrapper.DoVoidRequest = request; // Configuration map containing signature credentials and other required configuration. // For a full list of configuration parameters refer in wiki page // [https://github.com/paypal/sdk-core-dotnet/wiki/SDK-Configuration-Parameters] Dictionary <string, string> configurationMap = Configuration.GetAcctAndConfig(); // Create the PayPalAPIInterfaceServiceService service object to make the API call PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap); // # API call // Invoke the DoVoid method in service wrapper object DoVoidResponseType doVoidResponse = service.DoVoid(wrapper); // Check for API return status setKeyResponseObjects(service, doVoidResponse); }
protected void Submit_Click(object sender, EventArgs e) { // Create request object DoVoidRequestType request = new DoVoidRequestType(); request.AuthorizationID = authorizationId.Value; if (note.Value != "") { request.Note = note.Value; } // Invoke the API DoVoidReq wrapper = new DoVoidReq(); wrapper.DoVoidRequest = request; PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(); DoVoidResponseType doVoidResponse = service.DoVoid(wrapper); // Check for API return status setKeyResponseObjects(service, doVoidResponse); }
public override string VoidOrder(int OrderNumber) { String result = String.Empty; DB.ExecuteSQL("update orders set VoidTXCommand=NULL, VoidTXResult=NULL where OrderNumber=" + OrderNumber.ToString()); String TransID = String.Empty; using (var con = new SqlConnection(DB.GetDBConn())) { con.Open(); using (var rs = DB.GetRS("select * from orders with (NOLOCK) where OrderNumber=" + OrderNumber.ToString(), con)) { if (rs.Read()) { // If you are voiding a transaction that has been reauthorized, // use the ID from the original authorization, and not the reauthorization. TransID = Regex.Match(DB.RSField(rs, "AuthorizationPNREF"), "(?<=AUTH=)[0-9A-Z]+", RegexOptions.Compiled).ToString(); } } } if (TransID.Length == 0 || TransID == "0") { result = "Invalid or Empty Transaction ID"; } else { try { DoVoidReq VoidReq = new DoVoidReq(); DoVoidRequestType VoidRequestType = new DoVoidRequestType(); DoVoidResponseType VoidResponse; VoidRequestType.AuthorizationID = TransID; VoidRequestType.Version = API_VER; VoidReq.DoVoidRequest = VoidRequestType; VoidResponse = (DoVoidResponseType)IPayPal.DoVoid(VoidReq); //if (LogToErrorTable) //{ // PayPalController.Log(XmlCommon.SerializeObject(VoidReq, VoidReq.GetType()), "DoVoid Request"); // PayPalController.Log(XmlCommon.SerializeObject(VoidResponse, VoidResponse.GetType()), "DoVoid Response"); //} DB.ExecuteSQL("update orders set VoidTXCommand=" + DB.SQuote(XmlCommon.SerializeObject(VoidReq, VoidReq.GetType())) + ", VoidTXResult=" + DB.SQuote(XmlCommon.SerializeObject(VoidResponse, VoidResponse.GetType())) + " where OrderNumber=" + OrderNumber.ToString()); if (VoidResponse != null && VoidResponse.Ack.ToString().StartsWith("success", StringComparison.InvariantCultureIgnoreCase)) { result = AppLogic.ro_OK; } else { if (VoidResponse.Errors != null) { bool first = true; for (int ix = 0; ix < VoidResponse.Errors.Length; ix++) { if (!first) { result += ", "; } result += "Error: [" + VoidResponse.Errors[ix].ErrorCode + "] " + VoidResponse.Errors[ix].LongMessage; first = false; } } } } catch { result = "NO RESPONSE FROM GATEWAY!"; } } return(result); }
//#DoVoid API Operation //#Void an order or an authorization. public DoVoidResponseType DoVoidAPIOperation() { // Create the DoVoidResponseType object DoVoidResponseType responseDoVoidResponseType = new DoVoidResponseType(); try { // Create the DoVoidReq object DoVoidReq doVoid = new DoVoidReq(); // DoVoidRequest which takes mandatory params: // // * `Authorization ID` - Original authorization ID specifying the // authorization to void or, to void an order, the order ID. // `Important: // If you are voiding a transaction that has been reauthorized, use the // ID from the original authorization, and not the reauthorization.` DoVoidRequestType doVoidRequest = new DoVoidRequestType("9B2288061E685550E"); doVoid.DoVoidRequest = doVoidRequest; // Create the service wrapper object to make the API call PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(); // # API call // Invoke the DoVoid method in service wrapper object responseDoVoidResponseType = service.DoVoid(doVoid); if (responseDoVoidResponseType != null) { // Response envelope acknowledgement string acknowledgement = "DoVoid API Operation - "; acknowledgement += responseDoVoidResponseType.Ack.ToString(); logger.Info(acknowledgement + "\n"); Console.WriteLine(acknowledgement + "\n"); // # Success values if (responseDoVoidResponseType.Ack.ToString().Trim().ToUpper().Equals("SUCCESS")) { // Authorization identification number you specified in the request logger.Info("Authorization ID : " + responseDoVoidResponseType.AuthorizationID + "\n"); Console.WriteLine("Authorization ID : " + responseDoVoidResponseType.AuthorizationID + "\n"); } // # Error Values else { List <ErrorType> errorMessages = responseDoVoidResponseType.Errors; foreach (ErrorType error in errorMessages) { logger.Debug("API Error Message : " + error.LongMessage); Console.WriteLine("API Error Message : " + error.LongMessage + "\n"); } } } } // # Exception log catch (System.Exception ex) { // Log the exception message logger.Debug("Error Message : " + ex.Message); Console.WriteLine("Error Message : " + ex.Message); } return(responseDoVoidResponseType); }
/// <remarks/> public void DoVoidAsync(DoVoidReq DoVoidReq, object userState) { if ((this.DoVoidOperationCompleted == null)) { this.DoVoidOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDoVoidOperationCompleted); } this.InvokeAsync("DoVoid", new object[] { DoVoidReq}, this.DoVoidOperationCompleted, userState); }
/// <remarks/> public void DoVoidAsync(DoVoidReq DoVoidReq) { this.DoVoidAsync(DoVoidReq, null); }
public DoVoidResponseType DoVoid(DoVoidReq DoVoidReq) { return(DoVoid(DoVoidReq, null)); }