public OrderInfo HandlePaymentResponse(PaymentProvider paymentProvider, OrderInfo orderInfo) { var data = HttpContext.Current.Request["Data"]; var seal = HttpContext.Current.Request["Seal"]; Log.Instance.LogDebug("Omnikassa data: " + data + " Omnikassa seal: " + seal); var securityKey = paymentProvider.GetSetting("SecurityKey"); // Verifieer de Seal var sha256 = SHA256.Create(); var hashValue = sha256.ComputeHash(new UTF8Encoding().GetBytes(data + securityKey)); if (seal.ToLower() == ByteArrayToHexString(hashValue).ToLower()) // Seal is goed { // Lees de gewenste waarden uit de server response var dataItems = ParseData(data); var transactionCode = dataItems.First(i => i.Key == "transactionReference").Value; var responseCode = dataItems.First(i => i.Key == "responseCode").Value; Log.Instance.LogDebug("Omnikassa transactionCode: " + transactionCode + " responseCode: " + responseCode); orderInfo = OrderHelper.GetOrder(transactionCode); Log.Instance.LogDebug("Omnikassa orderInfo: " + orderInfo.OrderNumber); var successUrl = paymentProvider.SuccessUrl(); var cancelUrl = paymentProvider.ErrorUrl(); var redirectUrl = successUrl; //Code Beschrijving //00 Transaction success, authorization accepted (transactie gelukt, autorisatie geaccepteerd). //02 Please call the bank because the authorization limit on the card has been exceeded (neem contact op met de bank; de autorisatielimiet op de kaart is overschreden) //03 Invalid merchant contract (ongeldig contract webwinkel) //05 Do not honor, authorization refused (niet inwilligen, autorisatie geweigerd) //12 Invalid transaction, check the parameters sent in the request (ongeldige transactie, controleer de in het verzoek verzonden parameters). //14 Invalid card number or invalid Card Security Code or Card (for //MasterCard) or invalid Card Verification Value (for Visa/MAESTRO) (ongeldig kaartnummer of ongeldige beveiligingscode of kaart (voor MasterCard) of ongeldige waarde kaartverificatie (voor Visa/MAESTRO)) //17 Cancellation of payment by the end user (betaling geannuleerd door eindgebruiker/klant) //24 Invalid status (ongeldige status). //25 Transaction not found in database (transactie niet gevonden in database) //30 Invalid format (ongeldig formaat) //34 Fraud suspicion (vermoeden van fraude) //40 Operation not allowed to this Merchant (handeling niet toegestaan voor deze webwinkel) //60 Pending transaction (transactie in behandeling) //63 Security breach detected, transaction stopped (beveiligingsprobleem gedetecteerd, transactie gestopt). //75 The number of attempts to enter the card number has been exceeded (three tries exhausted) (het aantal beschikbare pogingen om het card‐nummer in te geven is overschreden (max. drie)) //90 Acquirer server temporarily unavailable (server acquirer tijdelijk onbeschikbaar) //94 Duplicate transaction (duplicaattransactie). (transactiereferentie al gereserveerd) //97 Request time‐out; transaction refused (time‐out voor verzoek; transactie geweigerd) //99 Payment page temporarily unavailable (betaalpagina tijdelijk niet beschikbaar) if (orderInfo.Paid == false) { switch (responseCode) { case "00": orderInfo.Paid = true; orderInfo.Status = OrderStatus.ReadyForDispatch; break; case "60": case "90": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPaymentProvider; break; case "17": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; orderInfo.PaymentInfo.ErrorMessage = "CANCELLED"; redirectUrl = cancelUrl; break; case "EXPIRED": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; orderInfo.PaymentInfo.ErrorMessage = "EXPIRED"; redirectUrl = cancelUrl; break; default: orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPaymentProvider; redirectUrl = cancelUrl; break; } orderInfo.Save(); } HttpContext.Current.Response.Redirect(redirectUrl); } else { throw new Exception("SEAL BROKEN"); } return(orderInfo); }
public OrderInfo HandlePaymentResponse(PaymentProvider paymentProvider, OrderInfo orderInfo) { var data = HttpContext.Current.Request["Data"]; var seal = HttpContext.Current.Request["Seal"]; Log.Instance.LogDebug("Omnikassa data: " + data + " Omnikassa seal: " + seal); var securityKey = paymentProvider.GetSetting("SecurityKey"); // Verifieer de Seal var sha256 = SHA256.Create(); var hashValue = sha256.ComputeHash(new UTF8Encoding().GetBytes(data + securityKey)); if (seal.ToLower() == ByteArrayToHexString(hashValue).ToLower()) // Seal is goed { // Lees de gewenste waarden uit de server response var dataItems = ParseData(data); var transactionCode = dataItems.First(i => i.Key == "transactionReference").Value; var responseCode = dataItems.First(i => i.Key == "responseCode").Value; Log.Instance.LogDebug("Omnikassa transactionCode: " + transactionCode + " responseCode: " + responseCode); orderInfo = OrderHelper.GetOrder(transactionCode); Log.Instance.LogDebug("Omnikassa orderInfo: " + orderInfo.OrderNumber); var successUrl = paymentProvider.SuccessUrl(); var cancelUrl = paymentProvider.ErrorUrl(); var redirectUrl = successUrl; //Code Beschrijving //00 Transaction success, authorization accepted (transactie gelukt, autorisatie geaccepteerd). //02 Please call the bank because the authorization limit on the card has been exceeded (neem contact op met de bank; de autorisatielimiet op de kaart is overschreden) //03 Invalid merchant contract (ongeldig contract webwinkel) //05 Do not honor, authorization refused (niet inwilligen, autorisatie geweigerd) //12 Invalid transaction, check the parameters sent in the request (ongeldige transactie, controleer de in het verzoek verzonden parameters). //14 Invalid card number or invalid Card Security Code or Card (for //MasterCard) or invalid Card Verification Value (for Visa/MAESTRO) (ongeldig kaartnummer of ongeldige beveiligingscode of kaart (voor MasterCard) of ongeldige waarde kaartverificatie (voor Visa/MAESTRO)) //17 Cancellation of payment by the end user (betaling geannuleerd door eindgebruiker/klant) //24 Invalid status (ongeldige status). //25 Transaction not found in database (transactie niet gevonden in database) //30 Invalid format (ongeldig formaat) //34 Fraud suspicion (vermoeden van fraude) //40 Operation not allowed to this Merchant (handeling niet toegestaan voor deze webwinkel) //60 Pending transaction (transactie in behandeling) //63 Security breach detected, transaction stopped (beveiligingsprobleem gedetecteerd, transactie gestopt). //75 The number of attempts to enter the card number has been exceeded (three tries exhausted) (het aantal beschikbare pogingen om het card‐nummer in te geven is overschreden (max. drie)) //90 Acquirer server temporarily unavailable (server acquirer tijdelijk onbeschikbaar) //94 Duplicate transaction (duplicaattransactie). (transactiereferentie al gereserveerd) //97 Request time‐out; transaction refused (time‐out voor verzoek; transactie geweigerd) //99 Payment page temporarily unavailable (betaalpagina tijdelijk niet beschikbaar) if (orderInfo.Paid == false) { switch (responseCode) { case "00": orderInfo.Paid = true; orderInfo.Status = OrderStatus.ReadyForDispatch; break; case "60": case "90": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPaymentProvider; break; case "17": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; orderInfo.PaymentInfo.ErrorMessage = "CANCELLED"; redirectUrl = cancelUrl; break; case "EXPIRED": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; orderInfo.PaymentInfo.ErrorMessage = "EXPIRED"; redirectUrl = cancelUrl; break; default: orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPaymentProvider; redirectUrl = cancelUrl; break; } orderInfo.Save(); } HttpContext.Current.Response.Redirect(redirectUrl); } else { throw new Exception("SEAL BROKEN"); } return orderInfo; }
/// <summary> /// Handles the response /// </summary> public OrderInfo HandlePaymentResponse(PaymentProvider paymentProvider, OrderInfo orderInfo) { #region config helper var merchantId = paymentProvider.GetSetting("merchantId"); var merchantKey = paymentProvider.GetSetting("merchantKey"); var merchantSecret = paymentProvider.GetSetting("merchantSecret"); var url = paymentProvider.GetSetting("url"); var transactionId = HttpContext.Current.Request["id"]; if (orderInfo == null) { orderInfo = OrderHelper.GetOrder(transactionId); } if (orderInfo == null) { Log.Instance.LogError("Easy iDeal response: Order Not Found For TransactionId: " + transactionId); HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); return(null); } // get the localized (for the right store) payment provider to get the right success/return urls var localizedPaymentProvider = PaymentProvider.GetPaymentProvider(paymentProvider.Id, orderInfo.StoreInfo.Alias); var redirectUrl = localizedPaymentProvider.ErrorUrl(); var successUrl = localizedPaymentProvider.SuccessUrl(); #endregion try { var paymentStatus = HttpContext.Current.Request["status"]; var salt = HttpContext.Current.Request["salt"]; var checksum = HttpContext.Current.Request["checksum"]; if (string.IsNullOrEmpty(transactionId)) { Log.Instance.LogError("Easy iDeal response: TransactionId IsNullOrEmpty"); HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); return(null); } if (orderInfo.Paid != false) { Log.Instance.LogDebug("Easy iDeal response: Order already paid! TransactionId: " + transactionId); HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); return(null); } var transactionCode = OrderHelper.ExtraInformationValue(orderInfo, "extraTransactionCode"); if (string.IsNullOrEmpty(transactionCode)) { Log.Instance.LogDebug("Easy iDeal response: OrderTransactionCode IsNullOrEmpty "); HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); return(null); } //check validity of request if (CheckChecksumPaymentStatus(transactionId, transactionCode, paymentStatus, salt, checksum)) //only check for payment status if request is valid. //This is a bit redundant, since you allready now the paymentStatus. But we could choose to do something with the extra info you get from this request e.g. IBAN { var args = new SortedList <string, string> { { "TransactionID", transactionId }, { "TransactionCode", transactionCode } }; var xmlRequest = GetXml(TRANSACTIONSTATUS, args, merchantId, merchantKey, merchantSecret); XDocument xmlResponse = XDocument.Parse(PostXml(xmlRequest, url)); var responseStatus = xmlResponse.Element("Response").Element("Status").FirstNode.ToString(); if (responseStatus == "OK") { if (xmlResponse.Element("Response").Element("Transaction").Element("Paid").FirstNode.ToString() == "Y") { orderInfo.Paid = true; orderInfo.Status = OrderStatus.ReadyForDispatch; redirectUrl = successUrl; } else { orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; } } } } catch (Exception ex) { Log.Instance.LogError("EasyIdealPaymentResponseHandler.HandlePaymentResponse: " + ex); } HttpContext.Current.Response.Redirect(redirectUrl); return(orderInfo); }
public OrderInfo HandlePaymentResponse(PaymentProvider paymentProvider, OrderInfo orderInfo) { var httpRequest = HttpContext.Current.Request; var requestParams = new Dictionary<string, string>(); NameValueCollection httpRequestParams = httpRequest.HttpMethod == "POST" ? httpRequest.Form : httpRequest.QueryString; foreach (string key in httpRequestParams) { requestParams.Add(key, httpRequest[key]); } var buckarooParams = new BuckarooResponseParameters(paymentProvider.GetSetting("SecretKey"), requestParams); if (buckarooParams.IsValid()) { HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); } orderInfo = OrderHelper.GetOrder(buckarooParams.TransactionId); if (orderInfo == null) { throw new ApplicationException("Buckaroo payment handler: no order found with transactionId " + buckarooParams.TransactionId); } var signatureFromBuckaroo = buckarooParams.Signature; var calculatedSignature = buckarooParams.GetSignature(); if (string.Compare(signatureFromBuckaroo, calculatedSignature) != 0) { HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); } Log.Instance.LogError("Buckaroo returned transactionId: " + buckarooParams.TransactionId + " resultCode: " + buckarooParams.StatusCode + " currency:" + buckarooParams.Currency + " amount: " + buckarooParams.Amount); if (string.IsNullOrEmpty(buckarooParams.TransactionId)) { HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); } var localizedPaymentProvider = PaymentProvider.GetPaymentProvider(paymentProvider.Id, orderInfo.StoreInfo.Alias); var succesUrl = localizedPaymentProvider.SuccessUrl(); var failUrl = localizedPaymentProvider.ErrorUrl(); var redirectUrl = succesUrl; if (orderInfo.Paid == true) { Log.Instance.LogError("Buckaroo Already PAID returned transactionId: " + buckarooParams.TransactionId + " resultCode: " + buckarooParams.StatusCode + " currency:" + buckarooParams.Currency + " amount: " + buckarooParams.Amount); HttpContext.Current.Response.Redirect(succesUrl); HttpContext.Current.Response.End(); } else { redirectUrl = failUrl; } //190 Succes: De transactie is geslaagd en de betaling is ontvangen / goedgekeurd. Definitief Ja //490 Mislukt: De transactie is mislukt. Definitief Nee //491 Validatie mislukt: De transactie verzoek bevatte fouten en kon niet goed verwerkt worden Definitief Nee //492 Technische storing: Door een technische storing kon de transactie niet worden afgerond //Definitief Nee //690 Afgekeurd: De transactie is afgewezen door de (derde) payment provider. Definitief Nee //790 In afwachting van invoer: De transactie is in de wacht, terwijl de payment enginge staat te wachten //op de inbreng van de consument. Tijdelijk Nee //791 In afwachting van verwerking: De transactie wordt verwerkt. Tijdelijk Nee //792 In afwachting van de consument: de betaling Engine wacht voor de consument om terug te keren van //een website van derden, die nodig is om de transactie te voltooien. Tijdelijk Nee //793 De transactie is onhold. //Tijdelijk Nee //890 Geannuleerd door Gebruiker: De transactie is geannuleerd door de klant. //Definitief Nee //891 Geannuleerd door Merchant: De merchant heeft de transactie geannuleerd. Definitief Nee switch (buckarooParams.StatusCode) { case "190": orderInfo.Paid = true; orderInfo.Status = OrderStatus.ReadyForDispatch; redirectUrl = succesUrl; break; case "490": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Transaction Failed (490) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "491": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Validation Failed (491) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "492": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Technical Failure (492) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "690": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Payment Denied by 3rd Party (690) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "790": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Waiting for customer input (790) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "791": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Waiting for transaction handling (791) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "792": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Waiting for customer to return from 3rd party website (792) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "793": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Transaction is On Hold (793) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "890": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Transaction Cancelled by Customer (890) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "891": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Transaction Cancelled by Merchant (891) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; } orderInfo.Save(); HttpContext.Current.Response.Redirect(redirectUrl); return orderInfo; }
/// <summary> /// Handles the response /// </summary> public OrderInfo HandlePaymentResponse(PaymentProvider paymentProvider, OrderInfo orderInfo) { #region config helper var merchantId = paymentProvider.GetSetting("merchantId"); var merchantKey = paymentProvider.GetSetting("merchantKey"); var merchantSecret = paymentProvider.GetSetting("merchantSecret"); var url = paymentProvider.GetSetting("url"); var transactionId = HttpContext.Current.Request["id"]; if (orderInfo == null) { orderInfo = OrderHelper.GetOrder(transactionId); } if (orderInfo == null) { Log.Instance.LogError("Easy iDeal response: Order Not Found For TransactionId: " + transactionId); HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); return null; } // get the localized (for the right store) payment provider to get the right success/return urls var localizedPaymentProvider = PaymentProvider.GetPaymentProvider(paymentProvider.Id, orderInfo.StoreInfo.Alias); var redirectUrl = localizedPaymentProvider.ErrorUrl(); var successUrl = localizedPaymentProvider.SuccessUrl(); #endregion try { var paymentStatus = HttpContext.Current.Request["status"]; var salt = HttpContext.Current.Request["salt"]; var checksum = HttpContext.Current.Request["checksum"]; if (string.IsNullOrEmpty(transactionId)) { Log.Instance.LogError("Easy iDeal response: TransactionId IsNullOrEmpty"); HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); return null; } if (orderInfo.Paid != false) { Log.Instance.LogDebug("Easy iDeal response: Order already paid! TransactionId: " + transactionId); HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); return null; } var transactionCode = OrderHelper.ExtraInformationValue(orderInfo, "extraTransactionCode"); if (string.IsNullOrEmpty(transactionCode)) { Log.Instance.LogDebug("Easy iDeal response: OrderTransactionCode IsNullOrEmpty "); HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); return null; } //check validity of request if (CheckChecksumPaymentStatus(transactionId, transactionCode, paymentStatus, salt, checksum)) //only check for payment status if request is valid. //This is a bit redundant, since you allready now the paymentStatus. But we could choose to do something with the extra info you get from this request e.g. IBAN { var args = new SortedList<string, string> { {"TransactionID", transactionId}, {"TransactionCode", transactionCode} }; var xmlRequest = GetXml(TRANSACTIONSTATUS, args, merchantId, merchantKey, merchantSecret); XDocument xmlResponse = XDocument.Parse(PostXml(xmlRequest, url)); var responseStatus = xmlResponse.Element("Response").Element("Status").FirstNode.ToString(); if (responseStatus == "OK") { if (xmlResponse.Element("Response").Element("Transaction").Element("Paid").FirstNode.ToString() == "Y") { orderInfo.Paid = true; orderInfo.Status = OrderStatus.ReadyForDispatch; redirectUrl = successUrl; } else { orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; } } } } catch (Exception ex) { Log.Instance.LogError("EasyIdealPaymentResponseHandler.HandlePaymentResponse: " + ex); } HttpContext.Current.Response.Redirect(redirectUrl); return orderInfo; }
public OrderInfo HandlePaymentResponse(PaymentProvider paymentProvider, OrderInfo orderInfo) { var httpRequest = HttpContext.Current.Request; Dictionary <string, string> requestParams = new Dictionary <string, string>(); NameValueCollection httpRequestParams = httpRequest.HttpMethod == "POST" ? httpRequest.Form : httpRequest.QueryString; foreach (string key in httpRequestParams) { requestParams.Add(key, httpRequest[key]); } BuckarooResponseParameters buckarooParams = new BuckarooResponseParameters(paymentProvider.GetSetting("SecretKey"), requestParams); if (buckarooParams.IsValid()) { HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); } string signatureFromBuckaroo = buckarooParams.Signature; string calculatedSignature = buckarooParams.GetSignature(); if (string.Compare(signatureFromBuckaroo, calculatedSignature) != 0) { HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); } Log.Instance.LogError("Buckaroo returned transactionId: " + buckarooParams.TransactionId + " resultCode: " + buckarooParams.StatusCode + " currency:" + buckarooParams.Currency + " amount: " + buckarooParams.Amount); if (string.IsNullOrEmpty(buckarooParams.TransactionId)) { HttpContext.Current.Response.Redirect(paymentProvider.ErrorUrl()); } var localizedPaymentProvider = PaymentProvider.GetPaymentProvider(paymentProvider.Id, orderInfo.StoreInfo.Alias); var succesUrl = localizedPaymentProvider.SuccessUrl(); var failUrl = localizedPaymentProvider.ErrorUrl(); var redirectUrl = succesUrl; if (orderInfo.Paid == true) { Log.Instance.LogError("Buckaroo Already PAID returned transactionId: " + buckarooParams.TransactionId + " resultCode: " + buckarooParams.StatusCode + " currency:" + buckarooParams.Currency + " amount: " + buckarooParams.Amount); HttpContext.Current.Response.Redirect(succesUrl); HttpContext.Current.Response.End(); } else { redirectUrl = failUrl; } //190 Succes: De transactie is geslaagd en de betaling is ontvangen / goedgekeurd. Definitief Ja //490 Mislukt: De transactie is mislukt. Definitief Nee //491 Validatie mislukt: De transactie verzoek bevatte fouten en kon niet goed verwerkt worden Definitief Nee //492 Technische storing: Door een technische storing kon de transactie niet worden afgerond //Definitief Nee //690 Afgekeurd: De transactie is afgewezen door de (derde) payment provider. Definitief Nee //790 In afwachting van invoer: De transactie is in de wacht, terwijl de payment enginge staat te wachten //op de inbreng van de consument. Tijdelijk Nee //791 In afwachting van verwerking: De transactie wordt verwerkt. Tijdelijk Nee //792 In afwachting van de consument: de betaling Engine wacht voor de consument om terug te keren van //een website van derden, die nodig is om de transactie te voltooien. Tijdelijk Nee //793 De transactie is onhold. //Tijdelijk Nee //890 Geannuleerd door Gebruiker: De transactie is geannuleerd door de klant. //Definitief Nee //891 Geannuleerd door Merchant: De merchant heeft de transactie geannuleerd. Definitief Nee switch (buckarooParams.StatusCode) { case "190": orderInfo.Paid = true; orderInfo.Status = OrderStatus.ReadyForDispatch; redirectUrl = succesUrl; break; case "490": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Transaction Failed (490) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "491": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Validation Failed (491) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "492": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Technical Failure (492) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "690": orderInfo.Paid = false; orderInfo.Status = OrderStatus.PaymentFailed; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Payment Denied by 3rd Party (690) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "790": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Waiting for customer input (790) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "791": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Waiting for transaction handling (791) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "792": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Waiting for customer to return from 3rd party website (792) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "793": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Transaction is On Hold (793) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "890": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Transaction Cancelled by Customer (890) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; case "891": orderInfo.Paid = false; orderInfo.Status = OrderStatus.WaitingForPayment; redirectUrl = failUrl; Log.Instance.LogError("Buckaroo ResponseHandler Transaction Cancelled by Merchant (891) for transactionId: " + buckarooParams.TransactionId + " Ordernumber: " + orderInfo.OrderNumber); break; } orderInfo.Save(); HttpContext.Current.Response.Redirect(redirectUrl); return(orderInfo); }