From d1ff7c18541b3519c6087f420e0d3b5aa0e6e25c Mon Sep 17 00:00:00 2001 From: Jitendra Purohit Date: Tue, 23 Jan 2018 16:09:53 +0530 Subject: [PATCH] CRM-20697 - Add checksum to pay now link --- CRM/Contribute/Form/Contribution/Main.php | 4 ++++ CRM/Contribute/Page/UserDashboard.php | 2 ++ templates/CRM/Contribute/Page/UserDashboard.tpl | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CRM/Contribute/Form/Contribution/Main.php b/CRM/Contribute/Form/Contribution/Main.php index f7b04a1ac890..a6416c8ac7f0 100644 --- a/CRM/Contribute/Form/Contribution/Main.php +++ b/CRM/Contribute/Form/Contribution/Main.php @@ -1300,6 +1300,10 @@ public function assignFormVariablesByContributionID() { if (empty($this->_ccid)) { return; } + $contactID = $this->getContactID(); + if (!$contactID) { + CRM_Core_Error::statusBounce(ts("Returning since there is no contact attached to this contribution id.")); + } $payment = CRM_Contribute_BAO_Contribution::getPaymentInfo($this->_ccid, 'contribution'); //bounce if the contribution is not pending. diff --git a/CRM/Contribute/Page/UserDashboard.php b/CRM/Contribute/Page/UserDashboard.php index a3dfb350423d..aed2bc6eaf17 100644 --- a/CRM/Contribute/Page/UserDashboard.php +++ b/CRM/Contribute/Page/UserDashboard.php @@ -142,6 +142,8 @@ public function run() { $invoiceSettings = Civi::settings()->get('contribution_invoice_settings'); $invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings); $defaultInvoicePage = CRM_Utils_Array::value('default_invoice_page', $invoiceSettings); + $cs = CRM_Contact_BAO_Contact_Utils::generateChecksum($this->_contactId); + $this->assign('contactChecksum', $cs); $this->assign('invoicing', $invoicing); $this->assign('defaultInvoicePage', $defaultInvoicePage); parent::preProcess(); diff --git a/templates/CRM/Contribute/Page/UserDashboard.tpl b/templates/CRM/Contribute/Page/UserDashboard.tpl index aca4d26a45a2..b97b03affcdf 100644 --- a/templates/CRM/Contribute/Page/UserDashboard.tpl +++ b/templates/CRM/Contribute/Page/UserDashboard.tpl @@ -77,7 +77,7 @@ {if $defaultInvoicePage && $row.contribution_status_name == 'Pending' } {assign var='id' value=$row.contribution_id} - {capture assign=payNowLink}{crmURL p='civicrm/contribute/transact' q="reset=1&id=`$defaultInvoicePage`&ccid=`$id`"}{/capture} + {capture assign=payNowLink}{crmURL p='civicrm/contribute/transact' q="reset=1&id=`$defaultInvoicePage`&ccid=`$id`&cid=`$row.contact_id`&cs=`$contactChecksum`"}{/capture} {ts}Pay Now{/ts} {/if}