public override string RedirectForPayment(OrderData orderData) { orderData.OrderStatus = "020"; orderData.PurchaseInfo.SetXmlProperty("genxml/paymenterror", ""); orderData.PurchaseInfo.Lang = Utils.GetCurrentCulture(); orderData.SavePurchaseData(); try { HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Write(ProviderUtils.GetBankRemotePost(orderData)); } catch (Exception ex) { // rollback transaction orderData.PurchaseInfo.SetXmlProperty("genxml/paymenterror", "<div>ERROR: Invalid payment data </div><div>" + ex + "</div>"); orderData.PaymentFail(); var param = new string[3]; param[0] = "orderid=" + orderData.PurchaseInfo.ItemID.ToString(""); param[1] = "status=0"; return Globals.NavigateURL(StoreSettings.Current.PaymentTabId, "", param); } try { HttpContext.Current.Response.End(); } catch (Exception ex) { // this try/catch to avoid sending error 'ThreadAbortException' } return ""; }
public override string ProcessPaymentReturn(HttpContext context) { var orderid = Utils.RequestQueryStringParam(context, "orderid"); if (Utils.IsNumeric(orderid)) { var status = Utils.RequestQueryStringParam(context, "status"); if (status == "0") { var orderData = new OrderData(Convert.ToInt32(orderid)); if (orderData.OrderStatus == "020") // check we have a waiting for bank status (Cancel from bank seems to happen even after notified has accepted it as valid??) { var rtnerr = orderData.PurchaseInfo.GetXmlProperty("genxml/paymenterror"); rtnerr = "."; // to return this so a fail is activated. orderData.PaymentFail(); return rtnerr; } } } return ""; }