Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
C
Core
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 926
    • Issues 926
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
  • Development
  • Core
  • Issues
  • #2034

Closed
Open
Opened Sep 15, 2020 by Adam Wood@webmaster_cses_org_uk

PayPal payment processor uses deprecated methods, breaking functionality

Symptoms per issues #760, #1195 and #1007

When a payment is processed via PayPal standard, inappropriate "Cancel Subscription" and "Update Billing Details" links are shown in the confirmation emails and front-end contact dashboard. These links either do not work or present a form that does nothing.

I can see that in https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/Payment/PayPalImpl.php various fixes have been made for this (e.g. line 651 in cancelSubscriptionURL() and line 669 in isSupported(), and subsequent callback methods themselves) however these appear to have been deprecated in the base class https://github.com/civicrm/civicrm-core/blob/1ff2405992ac45df88425ff400a2c37f6056d938/CRM/Core/Payment.php:

  • isSupported() replaced by supports() (line 306)
  • cancelSubscriptionURL() replaced by subscriptionURL(... $action) (line 1693)
  • Similar for other actions e.g. change billing details

These methods are now used in other areas of the application such as email and form generation, but PayPalImpl.php appears to have not been updated, which causes the broken behaviour.

Side issues observed while testing this (for a new installation of 5.29.0 on Joomla 3.9.8):

  • Link to instalments for recurring contributions in front-end user dashboard (if present) is broken - gives permissions / access error
  • Instalments text has spurious trailing slash (?)
  • Formatting errors when displaying recurrence frequency for recurring contributions in front-end user dashboard

(Perhaps these are separate issue(s)).

Edited Sep 15, 2020 by Adam Wood
To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: dev/core#2034