Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.3.3
-
Fix Version/s: 4.4.0
-
Component/s: CiviContribute
-
Labels:None
Description
A payment extension provides a payment class (deriving from CRM_Core_Payment) identified by a payment method name.
On IPN requests, the following static method is always called:
CRM_Core_Payment::handleIPN(), which calls
CRM_Core_Payment::handlePaymentMethod().
The latter fetches the payment processor by civicrm_payment_processor_type.name.
If two payment processor instances exist in the database for the same processor type, then this will be ambiguous, and CiviCRM will likely load the wrong processor instance.
Result: The IPN fails.