'processor_name' => @$_GET['processor_name'],
'processor_id' => @$_GET['processor_id'],
'mode' => @$_GET['mode'],
+ 'q' => @$_GET['q'],
)
);
CRM_Utils_System::civiExit();
*/
public static function handlePaymentMethod($method, $params = array()) {
if (!isset($params['processor_id']) && !isset($params['processor_name'])) {
- CRM_Core_Error::fatal("Either 'processor_id' or 'processor_name' param is required for payment callback");
+ $q = explode('/', CRM_Utils_Array::value('q', $params, ''));
+ $lastParam = array_pop($q);
+ if (is_numeric($lastParam)) {
+ $params['processor_id'] = $_GET['processor_id'] = $lastParam;
+ }
+ else {
+ throw new CRM_Core_Exception("Either 'processor_id' or 'processor_name' param is required for payment callback");
+ }
}
+
self::logPaymentNotification($params);
$sql = "SELECT ppt.class_name, ppt.name as processor_name, pp.id AS processor_id