Uploaded image for project: 'CiviCRM'
  1. CiviCRM
  2. CRM-20164

PayPal Standard notify_url breaks with Joomla when derived from menu item

    Details

    • Type: Bug
    • Status: Done/Fixed
    • Priority: Trivial
    • Resolution: Fixed/Completed
    • Affects Version/s: 4.7.16
    • Fix Version/s: 4.7.28
    • Component/s: CiviContribute
    • Labels:
    • Versioning Impact:
      Patch (backwards-compatible bug fixes)
    • Documentation Required?:
      None
    • Funding Source:
      Contributed Code
    • Verified?:
      No

      Description

      I ran into another situation of the nagging issue where PayPal does not change the status of a contribution from pending to completed after processing. In this case, I think it's specific to Joomla and how URLs are constructed.

      In Joomla, menu items have an &Itemid=## param appended to URLs. If a contribution page is created as a menu item, all CiviCRM paths then have this value appended, and that value is carried through to any other URL constructions, including the notify_url passed to PayPal. It seems that the presence of that param throws off the IPN processing – I suspect that an Itemid lookup occurs to get the original menu parameters, which then override notify_url.

      Since this is Joomla specific, I'm inclined to address it in CRM_Utils_System_Joomla::url(), which I believe is called to construct the notify URL. I could handle as a hard-coded exception in that method, or add a parameter to allow forced suppression of the Itemid (which would require also modifying the parent method, etc.). Thoughts?

      (I also would be curious to see if anyone else has run into this.)

        Attachments

          Activity

            People

            • Assignee:
              lcdweb Brian Shaughnessy
              Reporter:
              lcdweb Brian Shaughnessy
            • Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: