Index: uc_worldpay.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/uc_worldpay/uc_worldpay.module,v retrieving revision 1.17 diff -u -p -r1.17 uc_worldpay.module --- uc_worldpay.module 18 Aug 2010 13:04:57 -0000 1.17 +++ uc_worldpay.module 18 Aug 2010 20:51:54 -0000 @@ -137,6 +137,14 @@ function uc_payment_method_worldpay($op, '#options' => array('AUTHORISED' => 'Authorised', 'REFUSED' => 'Refused', 'ERROR' => 'Error', 'CAPTURED' => 'Captured'), '#disabled' => (!variable_get('uc_worldpay_test', TRUE)) ? TRUE : FALSE, ); + $form['payment_parameters']['uc_worldpay_md5'] = array( + '#type' => 'textfield', + '#title' => t('MD5 secret word'), + '#description' => t('Secure your RBS Worldpay account so only your server can send transactions to RBS Worldpay. NB. This needs to be configured on your RBS Worldpay account first.'), + '#size' => 20, + '#maxlength' => 255, + '#default_value' => variable_get('uc_worldpay_md5', ''), + ); $form['payment_parameters']['uc_worldpay_desc'] = array( '#type' => 'checkbox', '#title' => t('Submit the cart contents as the order description'), @@ -363,6 +371,14 @@ function uc_worldpay_form($form_state, $ ); } + $uc_worldpay_md5 = variable_get('uc_worldpay_md5', ''); + if (drupal_strlen($uc_worldpay_md5) > 0) { + $data += array( + 'signatureFields' => 'currency:cartId:amount', + 'signature' => md5($uc_worldpay_md5 . ':' . $data['currency'] . ':' . $data['cartId'] . ':' . $data['amount']), + ); + } + foreach ($data as $name => $value) { $form[$name] = array( '#type' => 'hidden',