From 6569bf0fbd11ad32d88ef1c8a5d7e1f9ae86e958 Mon Sep 17 00:00:00 2001 From: Matthew Wire <mjw@mjwconsult.co.uk> Date: Fri, 10 Sep 2021 16:20:16 +0100 Subject: [PATCH] Remove individual class properties for contributionRecur and store contributionRecur as array on class --- CRM/Core/Payment/StripeIPN.php | 16 ++++++---------- tests/phpunit/CRM/Stripe/IpnTest.php | 22 +++++++++++++--------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/CRM/Core/Payment/StripeIPN.php b/CRM/Core/Payment/StripeIPN.php index ea3a1aee..d24a4c2e 100644 --- a/CRM/Core/Payment/StripeIPN.php +++ b/CRM/Core/Payment/StripeIPN.php @@ -34,11 +34,6 @@ class CRM_Core_Payment_StripeIPN { protected $subscription_id = NULL; protected $customer_id = NULL; protected $charge_id = NULL; - protected $previous_plan_id = NULL; - protected $plan_amount = NULL; - protected $frequency_interval = NULL; - protected $frequency_unit = NULL; - protected $plan_start = NULL; /** * @var string The stripe Invoice ID (mapped to trxn_id on a contribution for recurring contributions) @@ -629,8 +624,13 @@ class CRM_Core_Payment_StripeIPN { // Get the recurring contribution record associated with the Stripe subscription. try { - $contributionRecur = civicrm_api3('ContributionRecur', 'getsingle', ['trxn_id' => $this->subscription_id]); + $contributionRecur = \Civi\Api4\ContributionRecur::get(FALSE) + ->addWhere('trxn_id', '=', $this->subscription_id) + ->addWhere('is_test', 'IN', [TRUE, FALSE]) + ->execute() + ->first(); $this->contribution_recur_id = $contributionRecur['id']; + $this->contributionRecur = $contributionRecur; } catch (Exception $e) { if ((bool)\Civi::settings()->get('stripe_ipndebug')) { @@ -639,10 +639,6 @@ class CRM_Core_Payment_StripeIPN { } return FALSE; } - $this->plan_amount = $this->retrieve('plan_amount', 'String', FALSE); - $this->frequency_interval = $this->retrieve('frequency_interval', 'String', FALSE); - $this->frequency_unit = $this->retrieve('frequency_unit', 'String', FALSE); - $this->plan_start = $this->retrieve('plan_start', 'String', FALSE); return TRUE; } diff --git a/tests/phpunit/CRM/Stripe/IpnTest.php b/tests/phpunit/CRM/Stripe/IpnTest.php index 8844ba96..aec7d459 100644 --- a/tests/phpunit/CRM/Stripe/IpnTest.php +++ b/tests/phpunit/CRM/Stripe/IpnTest.php @@ -33,12 +33,16 @@ * @group headless */ class CRM_Stripe_IpnTest extends CRM_Stripe_BaseTest { + protected $contributionRecurID; - protected $installments = 5; - protected $frequency_unit = 'month'; - protected $frequency_interval = 1; protected $created_ts; + protected $contributionRecur = [ + 'frequency_unit' => 'month', + 'frequency_interval' => 1, + 'installments' => 5, + ]; + /** * Test creating a recurring contribution and * update it after creation. @todo The membership should also be updated. @@ -657,9 +661,9 @@ class CRM_Stripe_IpnTest extends CRM_Stripe_BaseTest { 'contact_id' => $this->contactID, 'amount' => $this->total, 'sequential' => 1, - 'installments' => $this->installments, - 'frequency_unit' => $this->frequency_unit, - 'frequency_interval' => $this->frequency_interval, + 'installments' => $this->contributionRecur['installments'], + 'frequency_unit' => $this->contributionRecur['frequency_unit'], + 'frequency_interval' => $this->contributionRecur['frequency_interval'], 'contribution_status_id' => 2, 'payment_processor_id' => $this->paymentProcessorID, 'is_test' => 1, @@ -948,9 +952,9 @@ class CRM_Stripe_IpnTest extends CRM_Stripe_BaseTest { 'is_recur' => 1, 'contributionRecurID' => $this->contributionRecurID, 'contributionID' => $this->contributionID, - 'frequency_unit' => $this->frequency_unit, - 'frequency_interval' => $this->frequency_interval, - 'installments' => $this->installments, + 'frequency_unit' => $this->contributionRecur['frequency_unit'], + 'frequency_interval' => $this->contributionRecur['frequency_interval'], + 'installments' => $this->contributionRecur['installments'], ]; $this->doPayment($payment_extra_params); -- GitLab