Quote Originally Posted by dab View Post
I have been having a look at the requirements for this change, and also spoken wth RBS WorldPay tech support. I have now done a change to my 1.37 site which seems to work in the new format - use at your own risk.

In /includes/modules/payment/worldpay.php around line 299 there is a line like this:
PHP Code:
$md5_signature MODULE_PAYMENT_WORLDPAY_MD5KEY ':'.$OrderAmt.':' $currency ':' $order->customer['email_address']; 
which I have changed to
PHP Code:
$md5_signature MODULE_PAYMENT_WORLDPAY_MD5KEY ';' $md5_signature_fields ';' $OrderAmt ';' $currency ';' $order->customer['email_address']; 
Note that the separators have changed as well as the additional field.
If you get to the Worldpay page with the card logos, then I believe it is working ok, otherwise you will get an error at this point.
OK then what do we put into the new SignatureFields slot which is now present in the worldpay setup in both the test and production environments?
Although i haven't had time to test it i believe all that should need to be done is add
" amount:currency:email " without the " into the SignatureFields slot.
This information can be found in /includes/modules/payment/worldpay.php line 298.
How i read the worldpay information is that they have added this new field and all you are doing is telling them what info in what order you will be sending to them and it verifies that along with everything else it does.
Like i said this is untested but i'm sure if you have just made changes to your worldpay script and not changed anything in the worldpay environment on their site i can't see how it could work because they have no information on their site to match what you will be sending.
Test only in the test environment. Use at your own risk.