Orders Staying in Basket / Worldpay / Pipeline Errors
We are using Umbraco 4.10 ...
( We can't upgrade because of integrations into Legacy systems, and we have inherited some of these as binaries from the initial developers of the site )
We are on a shared hosting ( management budgets )
Worldpay:
We are using Worldpay / with a custom payback method which corrects the callback URL
We can send customers off to Worldpay and when they come back we do get a successful Transaction ID.
Unfortunately these customers get stuck as a Basket Order
and around the time they either return or go off to worldpay
we get this error
Thread was being aborted. Void AbortInternal() at System.Threading.Thread.AbortInternal() at System.Threading.Thread.Abort(Object stateInfo) at System.Web.HttpResponse.AbortCurrentThread() at System.Web.HttpResponse.End() at System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent) at UCommerce.Transactions.Payments.ExternalPaymentMethodService.RequestPayment(PaymentRequest paymentRequest) at UCommerce.Transactions.TransactionLibraryInternal.CreatePayment(Int32 paymentMethodId, Decimal amount, Boolean requestPayment, Boolean overwriteExisting) at Castle.Proxies.TransactionLibraryInternalProxy.CreatePaymentcallback(Int32 paymentMethodId, Decimal amount, Boolean requestPayment, Boolean overwriteExisting) at Castle.Proxies.Invocations.TransactionLibraryInternalCreatePayment.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at UCommerce.Infrastructure.Interceptor.ExceptionLoggingInterceptor.Intercept(IInvocation invocation) at UCommerce.Infrastructure.Interceptor.ExceptionLoggingInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.TransactionLibraryInternalProxy.CreatePayment(Int32 paymentMethodId, Decimal amount, Boolean requestPayment, Boolean overwriteExisting) at UCommerce.Api.TransactionLibrary.CreatePayment(Int32 paymentMethodId, Decimal amount, Boolean requestPayment, Boolean overwriteExisting) at Radiator.MasterPages.ShopConfirmHTML.CreatePayment() at Radiator.MasterPages.ShopConfirmHTML.PageLoad(Object sender, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.defaultaspx.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
We get this in an umbraco log
usually preceeding these messages
Even though emails get executed by the Pipeline,
the orders mostly stay in the Basket
As you can see from above the error message is quite cryptic...
our create payment function is below.
private void CreatePayment()
{
Basket B = null;
try
{
B = SiteContext.Current.OrderContext.GetBasket();
}
catch
{
logonAlert.InnerHtml = "Something has happened during the processing of this request and we were umable to complete the process.<br/>Please return to your basket and try again.<br/>We apologise for any inconvienence.";
logonAlert.Visible = true;
pnlMain.Visible = false;
return;
}
Shipment shipment = B.PurchaseOrder.Shipments.FirstOrDefault();
shipment.DeliveryNote = Request["deliveryInstructions"].ToString();
shipment.Save();
foreach (OrderLine OL in B.PurchaseOrder.OrderLines)
{
OL.Shipment = shipment;
OL.Save();
}
B.PurchaseOrder.Save();
B.Save();
if (ConfigurationManager.AppSettings["Sandbox"] == "1")
{
TransactionLibrary.CreatePayment(7, requestPayment: false);
Payment payment = B.PurchaseOrder.Payments.FirstOrDefault();
payment.PaymentStatus = PaymentStatus.Get((int)PaymentStatusCode.Authorized);
payment.Save();
TransactionLibrary.ExecuteBasketPipeline();
IEnumerable<WorldPayConfirmation> SB = USiteExtensions.GetChildrenByAlias<WorldPayConfirmation>(Convert.ToInt32(ConfigurationManager.AppSettings["ShopFolder"]), false, "WorldPayConfirmation").Take(1);
Response.Redirect(SB.First().Url, true);
}
else
{
TransactionLibrary.CreatePayment(7, requestPayment: true);
TransactionLibrary.ExecuteBasketPipeline();
}
}
We use the pipeline to completedorder in out payment settings
To enable orders to go to new order status from basket order status
we let the callback fail...a maual redirection was dont on site which updated the order status
Orders Staying in Basket / Worldpay / Pipeline Errors
We are using Umbraco 4.10 ... ( We can't upgrade because of integrations into Legacy systems, and we have inherited some of these as binaries from the initial developers of the site ) We are on a shared hosting ( management budgets )
Worldpay:
We are using Worldpay / with a custom payback method which corrects the callback URL
We can send customers off to Worldpay and when they come back we do get a successful Transaction ID.
Unfortunately these customers get stuck as a Basket Order and around the time they either return or go off to worldpay we get this error
Thread was being aborted. Void AbortInternal() at System.Threading.Thread.AbortInternal() at System.Threading.Thread.Abort(Object stateInfo) at System.Web.HttpResponse.AbortCurrentThread() at System.Web.HttpResponse.End() at System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent) at UCommerce.Transactions.Payments.ExternalPaymentMethodService.RequestPayment(PaymentRequest paymentRequest) at UCommerce.Transactions.TransactionLibraryInternal.CreatePayment(Int32 paymentMethodId, Decimal amount, Boolean requestPayment, Boolean overwriteExisting) at Castle.Proxies.TransactionLibraryInternalProxy.CreatePaymentcallback(Int32 paymentMethodId, Decimal amount, Boolean requestPayment, Boolean overwriteExisting) at Castle.Proxies.Invocations.TransactionLibraryInternalCreatePayment.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at UCommerce.Infrastructure.Interceptor.ExceptionLoggingInterceptor.Intercept(IInvocation invocation) at UCommerce.Infrastructure.Interceptor.ExceptionLoggingInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.TransactionLibraryInternalProxy.CreatePayment(Int32 paymentMethodId, Decimal amount, Boolean requestPayment, Boolean overwriteExisting) at UCommerce.Api.TransactionLibrary.CreatePayment(Int32 paymentMethodId, Decimal amount, Boolean requestPayment, Boolean overwriteExisting) at Radiator.MasterPages.ShopConfirmHTML.CreatePayment() at Radiator.MasterPages.ShopConfirmHTML.PageLoad(Object sender, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.defaultaspx.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
We get this in an umbraco log usually preceeding these messages
we get an email sent out as the pipeline executes
Mail Messages sent to [email protected] from [email protected]
followed by a transaction ID
Transaction ID is 4311343XXX
Even though emails get executed by the Pipeline, the orders mostly stay in the Basket
As you can see from above the error message is quite cryptic... our create payment function is below.
We use the pipeline to completedorder in out payment settings To enable orders to go to new order status from basket order status we let the callback fail...a maual redirection was dont on site which updated the order status
Thanks for your help
is working on a reply...