We have an Apache server running a PHP website. The site is an e-commerce shop.

We currently use Barclays as the payment provider but are seeing a lot of customers drop out at the point at which we transfer them to the payment gateway (hosted with Barclays)

I can see specific instances in the shop where orders have been created but not paid/failed but I need to ascertain if the user has definitely left our server (or just failed to reach Barclays).

Is there anything in any of the server/access logs that states when a user transferred to a different domain?

Update When the user clicks on 'Pay now' they are sent to a gateway transfer page which builds a hidden form of the shopping cart details and submits the form (using JS) to Barclays. How do I check the gateway is there before I send them?

  • You can use Google Analytics to track outbound links to another domain - see this for more: webmasters.stackexchange.com/questions/53521/…
    – dan
    Jun 7, 2014 at 7:02
  • This depends on how your site is coded. If the payment link takes them directly to a 3rd party, then you will have no record of this in your logs. Since this event is on the browser side, you would have to use JavaScript's onclick to track it. Alternatively, you could pass them first through a URL redirect script on your server. This would at least record the click and then send a 301 redirect to your payment gateway. Depending on how things are handled, you could first check to see if the gateway responds and then send the 301 or other response as needed. Jun 9, 2014 at 20:07
  • I've updated my question @jeffatrackaid
    – Jeepstone
    Jun 10, 2014 at 16:00

2 Answers 2


As a short-term check you could send a list of offending orders to Barclays and ask them to reply with a status for each one. They'll have a record of any transactions that made it to them, and should even be able to tell you how far into the process they made it before dropping off.

Obviously any orders that don't have a matching transaction in Barclays' system are the ones to focus on then. Perhaps you can look for a common pattern amongst those, like browser/OS version or ISP.

Depending on what integration method you're using, there's probably an API with the payment gateway which will let you query transactions on the fly. This is also really helpful to run regularly (as a nightly cronjob perhaps) to identify any orders which may have even been successful but the authorisation/response never made it back to your server after completion.

  • I'm aware that I've answered this more from the transactional standpoint, but I don't think there's a guaranteed way to know if the user actually made it to the destination or not. If somebody can answer that specific question then it should compliment my response quite well. Having different approaches to solve the same problem is always helpful. Jun 5, 2014 at 14:19
  • Thanks Andrew. Apparently they can't see anything hitting their servers for the transactions I'm talking about (I've provided them times, dates and IP addresses). So that means either they don't leave our server, or they drop out in transit. The problem is that if they leave our server, but don't get to Barclays (lets say the server is unavailable) then there will be no record of it anyway.
    – Jeepstone
    Jun 5, 2014 at 16:20

Since your form uses JS, you can run multiple functions from the onClick action. You could first call a script on your server that will run various tests against the remote payment gateway and then if the result is positive, pass back code to redirect the user to the gateway. If the test is failing, then you could send an error message.

This would provide some insight but to be 100% certain you would need to contact your processor for log details as recommended by @Andrew Lott.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.