Worldpay Intergration

We have a few problems with Worldpay since installing it and found that orders are not set to processed as they are when a Paypal transaction is used.

Worldpay tech state that they are sending a 'Y' request on the callback, however are cart is seeing that setting the order to failed!

“The reason you are seeing a failed order status is because of the script that you have on your system that is interpreting the transStatus=Y incorrectly. The value of “Y” for the transStatus indicates that it has been a successful transaction.”

It looks as though there may be an issue with our script file, however I can't find any script file relating to this - could anyone advise where the file is?


In /payments/worldpay.php:

$pp_response['order_status'] = ($_REQUEST['transStatus'] == 'Y' && (!empty($processor_data['params']['callback_password']) ? (!empty($_REQUEST['callbackPW']) && $_REQUEST['callbackPW'] == $processor_data['params']['callback_password']) : true)) ? 'P' : 'F';
if ($_REQUEST['transStatus'] == 'Y') {
$pp_response['reason_text'] = $_REQUEST['rawAuthMessage'];
$pp_response['transaction_id'] = $_REQUEST['transId'];
$pp_response['descr_avs'] = ('CVV (Security Code): ' . $avs_res[substr($_REQUEST['AVS'], 0, 1)] . '; Postcode: ' . $avs_res[substr($_REQUEST['AVS'], 1, 1)] . '; Address: ' . $avs_res[substr($_REQUEST['AVS'], 2, 1)] . '; Country: ' . $avs_res[substr($_REQUEST['AVS'], 3)]);

transStatus=Y is correct. Are your WorldPay payments marked as Incomplete or outright Failed?

If we enable the call back they go to Failed, if we disable the call back they stay as incomplete.

Your version of CS-Cart was released almost 2 years ago, it is possible there has been updates to the WorldPay payment file since v2.1.4. I haven't used WorldPay for some time, but never used it with CS-Cart.

Although some variables and suchlike may have changed, you could get a copy of the latest release and see if there are any major differences in the payments/worldpay.php file which may highlight your problem.