From af1bffc26d575b4b0ee1db4cd29e64456be1cd30 Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Sun, 19 Sep 2021 11:08:51 +0100 Subject: [PATCH] Deprecate civicrm_contribution_recur.trxn_id --- CRM/Contribute/Form/Contribution/Confirm.php | 5 ++--- CRM/Contribute/Page/ContributionRecur.php | 3 +++ xml/schema/Contribute/ContributionRecur.xml | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CRM/Contribute/Form/Contribution/Confirm.php b/CRM/Contribute/Form/Contribution/Confirm.php index bc9ec89272..780e00c462 100644 --- a/CRM/Contribute/Form/Contribution/Confirm.php +++ b/CRM/Contribute/Form/Contribution/Confirm.php @@ -1231,9 +1231,8 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $recurParams['contribution_status_id'] = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending'); $recurParams['payment_processor_id'] = $params['payment_processor_id'] ?? NULL; $recurParams['is_email_receipt'] = (bool) ($params['is_email_receipt'] ?? FALSE); - // we need to add a unique trxn_id to avoid a unique key error - // in paypal IPN we reset this when paypal sends us the real trxn id, CRM-2991 - $recurParams['trxn_id'] = $params['trxn_id'] ?? $params['invoiceID']; + // We set trxn_id=invoiceID specifically for paypal IPN. It is reset this when paypal sends us the real trxn id, CRM-2991 + $recurParams['processor_id'] = $recurParams['trxn_id'] = ($params['trxn_id'] ?? $params['invoiceID']); $recurParams['financial_type_id'] = $contributionType->id; $campaignId = $params['campaign_id'] ?? $form->_values['campaign_id'] ?? NULL; diff --git a/CRM/Contribute/Page/ContributionRecur.php b/CRM/Contribute/Page/ContributionRecur.php index 7395390217..644c4144b9 100644 --- a/CRM/Contribute/Page/ContributionRecur.php +++ b/CRM/Contribute/Page/ContributionRecur.php @@ -74,6 +74,9 @@ class CRM_Contribute_Page_ContributionRecur extends CRM_Core_Page { NULL, TRUE, NULL, FALSE, CRM_Core_Permission::VIEW); CRM_Core_BAO_CustomGroup::buildCustomDataView($this, $groupTree, FALSE, NULL, NULL, NULL, $contributionRecur['id']); + if (isset($contributionRecur['trxn_id']) && ($contributionRecur['processor_id'] === $contributionRecur['trxn_id'])) { + unset($contributionRecur['trxn_id']); + } $this->assign('recur', $contributionRecur); $templateContribution = CRM_Contribute_BAO_ContributionRecur::getTemplateContribution($this->getEntityId()); diff --git a/xml/schema/Contribute/ContributionRecur.xml b/xml/schema/Contribute/ContributionRecur.xml index 10ccc53592..ceaa24d1f4 100644 --- a/xml/schema/Contribute/ContributionRecur.xml +++ b/xml/schema/Contribute/ContributionRecur.xml @@ -229,7 +229,7 @@ Transaction ID varchar 255 - unique transaction id. may be processor id, bank id + trans id, or account number + check number... depending on payment_method + unique transaction id (deprecated - use processor_id) 1.6 Text -- 2.25.1