edit

hook_civicrm_alterPaymentProcessorParams

Summary

This hook allows you to modify parameters passed to the payment processor.

Notes

This hook is called during the processing of a contribution after the payment processor has control, but before the CiviCRM processor-specific code starts a transaction with the back-end payment server (e.g. Authorize.net).

With this hook, you can pass custom parameters, or use features of your back-end that CiviCRM does not "know" about.

Definition

 hook_civicrm_alterPaymentProcessorParams($paymentObj,&$rawParams, &$cookedParams);

Parameters

  • $paymentObj - instance of payment class of the payment processor invoked
  • $rawParams - the associative array passed by CiviCRM to the processor
  • $cookedParams - the associative array of parameters as translated into the processor's API.

Returns

Example

function civitest_civicrm_alterPaymentProcessorParams($paymentObj,  &$rawParams,  &$cookedParams) {  
  if ($paymentObj->class_name == Payment_Dummy ) {    
    $employer   = empty($rawParams['custom_1']) ? '' : $rawParams['custom_1'];    
    $occupation = empty($rawParams['custom_2']) ? '' : $rawParams['custom_2'];    
    $cookedParams['custom'] = "$employer|$occupation";  }  
  else if ($paymentObj->class_name == Payment_AuthorizeNet) {    
    //Actual translation for one application:    
    //Employer > Ship to Country (x_ship_to_country)    
    //Occupation > Company (x_company)    
    //Solicitor > Ship-to First Name (x_ship_to_first_name)    
    //Event > Ship-to Last Name (x_ship_to_last_name)    
    //Other > Ship-to Company (x_ship_to_company)    
    $cookedParams['x_ship_to_country']   = $rawParams['custom_1'];    
    $cookedParams['x_company']           = $rawParams['custom_2'];    
    $cookedParams['x_ship_to_last_name'] = $rawParams['accountingCode']; 
    //for now    
    $country_info = da_core_fetch_country_data_by_crm_id($rawParams['country-1']);    
    $cookedParams['x_ship_to_company']   = $country_info['iso_code'];  
  }   
  elseif ($paymentObj->billing_mode == 2) {    
    // Express  Checkout    
    $cookedParams['desc']   = $rawParams['eventName'];    
    $cookedParams['custom'] = $rawParams['eventId'];  
  }
}