function commerce_sagepay_sagepay_order_data_alter in Drupal Commerce SagePay Integration 7
Implements hook_sagepay_order_data_alter().
Make specific changes to order data for countries that have no City requirement in their address format. SagePay expects a City and therefore will fail the transaction if the address does not contain one.
File
- ./
commerce_sagepay.module, line 777
Code
function commerce_sagepay_sagepay_order_data_alter(&$query, $order) {
switch ($query['BillingCountry']) {
case 'SG':
$query['BillingCity'] = 'Singapore';
break;
case 'GI':
$query['BillingCity'] = 'Gibraltar';
break;
case 'HK':
$query['BillingCity'] = 'Hong Kong';
break;
case 'NR':
$query['BillingCity'] = 'Nauru';
break;
case 'SM':
$query['BillingCity'] = 'San Marino';
break;
case 'AE':
$query['BillingCity'] = 'United Arab Emirates';
break;
}
switch ($query['DeliveryCountry']) {
case 'SG':
$query['DeliveryCity'] = 'Singapore';
break;
case 'GI':
$query['DeliveryCity'] = 'Gibraltar';
break;
case 'HK':
$query['DeliveryCity'] = 'Hong Kong';
break;
case 'NR':
$query['DeliveryCity'] = 'Nauru';
break;
case 'SM':
$query['DeliveryCity'] = 'San Marino';
break;
case 'AE':
$query['DeliveryCity'] = 'United Arab Emirates';
break;
}
// Check if the user has entered a first and last name as required.
// If not, add dummy data so that the transaction still works.
if (empty($query['BillingSurname'])) {
$query['BillingSurname'] = '.';
}
if (empty($query['DeliverySurname'])) {
$query['DeliverySurname'] = '.';
}
}