Umbraco 4.7.1.1 with uCommerce 2.5.2.0 and RBS WorldPay
I'm trying to put my first installation in place but having some trouble with WorldPay, though in truth it might be as much to do with my lack of understanding of the pipelines yet. Any help would be gratefully appreciated.
Currently I have the basket process working to the point where the user selects their payment method (WorldPay currently being the only option). On selecting WorldPay CommerceLibrary:CreatePayment runs and take the user to the WorldPay payment pages. Our WorldPay.config would seem to be correctly set as the payment appears to successfully process.
Following the instructions from http://www.publicvoid.dk/ we have set “Payment Response Enabled” which brings the last page of WorldPay back to our acceptURL. The page in the acceptUrl seems to get rendered by WorldPay and displayed under a WorldPay url, but we can meta-refresh the users browser back to our site.
Now, if I bypass WorldPay and access our acceptUrl directly (then getting meta-redirected to our thanks page) I’m able to Checkout the basket, generate emails, and update the order status to paid. However, passing through WorldPay seems to disassociate our basket by the time we've come back to the thanks page.
Ideally I suspect we can pass something to WorldPay, through the payment process, and back to our site on the acceptUrl; this seems to be indicated on the changelog for 2.5.1.0 “Order guid included automatically on accept URL for all payment providers.”
What format would this take (simply a post variable?) and can I access it from XSLT ?
Regards, Mark
TLDR : How do I get the basket guid from the worldpay acceptUrl ?
What you're seeing is uCommerce executing the configured pipeline and disassocisting the basket cookie in the process.
You don't have to update payment or order status as this is done by the pipeline when the callback is received from WorldPay. Same thing for sending emails;; its handled by the pipeline as well.
As for the bagetid disappearing you can fix that by gagging the order guide which is supplied to the configured accept Page as a query string parameter. If you forward that to the overriding URL you will be good to go for displaying the confirmation.
One final point on WolrdPay:: As far as I know overriding the confirm URL is discouraged if not outright prohibited by their TOS. It's something to keep in mind if they decide to reject your solution.
Bear in mind that while their integration guides state this I'm not sure how heavy handed they enforce it.
Thank you very much for your reply. It would seem that I had caused myself much of the headache, and orginally had the acceptUrl running the checkout pipeline and sending emails. I had just been tinkering so much I had introduced more problems than I had solved.
The original problem I had been looking to solve was how to run CommerceLibrary:ChangeOrderStatus to mark the order as paid after running checkout.
Thank you also for the advice on worldpay, I think the accepted method is to upload a ResultY.html page to their server and they'll display this on completion (after calling the acceptUrl). From here you would look to link people back to the shop.
You can also include a URL for them to display on their end. The URL you specific as AcceptUrl in the configuration file will be scraped by WorldPay and displayed under their URL.
Not sure I was clear on this but you don't have to change any status on the order yourself when you've got the "chekcout" pipeline configured for your payment method. The pipeline will handle changing both the order- and payment status according to the response received from WorldPay.
uCommerce with Rbs Worldpay returning Basket Guid
Umbraco 4.7.1.1 with uCommerce 2.5.2.0 and RBS WorldPay
I'm trying to put my first installation in place but having some trouble with WorldPay, though in truth it might be as much to do with my lack of understanding of the pipelines yet. Any help would be gratefully appreciated.
Currently I have the basket process working to the point where the user selects their payment method (WorldPay currently being the only option). On selecting WorldPay CommerceLibrary:CreatePayment runs and take the user to the WorldPay payment pages. Our WorldPay.config would seem to be correctly set as the payment appears to successfully process.
Following the instructions from http://www.publicvoid.dk/ we have set “Payment Response Enabled” which brings the last page of WorldPay back to our acceptURL. The page in the acceptUrl seems to get rendered by WorldPay and displayed under a WorldPay url, but we can meta-refresh the users browser back to our site.
Now, if I bypass WorldPay and access our acceptUrl directly (then getting meta-redirected to our thanks page) I’m able to Checkout the basket, generate emails, and update the order status to paid. However, passing through WorldPay seems to disassociate our basket by the time we've come back to the thanks page.
Ideally I suspect we can pass something to WorldPay, through the payment process, and back to our site on the acceptUrl; this seems to be indicated on the changelog for 2.5.1.0 “Order guid included automatically on accept URL for all payment providers.”
What format would this take (simply a post variable?) and can I access it from XSLT ?
Regards,
Mark
TLDR : How do I get the basket guid from the worldpay acceptUrl ?
Hi Mark,
What you're seeing is uCommerce executing the configured pipeline and disassocisting the basket cookie in the process.
You don't have to update payment or order status as this is done by the pipeline when the callback is received from WorldPay. Same thing for sending emails;; its handled by the pipeline as well.
The sending email article explains how to set that up http://www.publicvoid.dk/SendingEmailUsingUCommerce.aspx
As for the bagetid disappearing you can fix that by gagging the order guide which is supplied to the configured accept Page as a query string parameter. If you forward that to the overriding URL you will be good to go for displaying the confirmation.
One final point on WolrdPay:: As far as I know overriding the confirm URL is discouraged if not outright prohibited by their TOS. It's something to keep in mind if they decide to reject your solution.
Bear in mind that while their integration guides state this I'm not sure how heavy handed they enforce it.
Hope this helps.
Hi Søren,
Thank you very much for your reply. It would seem that I had caused myself much of the headache, and orginally had the acceptUrl running the checkout pipeline and sending emails. I had just been tinkering so much I had introduced more problems than I had solved.
The original problem I had been looking to solve was how to run CommerceLibrary:ChangeOrderStatus to mark the order as paid after running checkout.
Thank you also for the advice on worldpay, I think the accepted method is to upload a ResultY.html page to their server and they'll display this on completion (after calling the acceptUrl). From here you would look to link people back to the shop.
Regards,
Mark
You can also include a URL for them to display on their end. The URL you specific as AcceptUrl in the configuration file will be scraped by WorldPay and displayed under their URL.
Not sure I was clear on this but you don't have to change any status on the order yourself when you've got the "chekcout" pipeline configured for your payment method. The pipeline will handle changing both the order- and payment status according to the response received from WorldPay.
is working on a reply...