From c6218c3c4423e8d1f994e671d069321d17dac763 Mon Sep 17 00:00:00 2001
From: Samuele Masetto <samuele.masetto@gmail.com>
Date: Wed, 29 Sep 2021 09:01:28 +0200
Subject: [PATCH] fix importcharge API for is_test support and some notices

---
 api/v3/Stripe/Importcharge.php       | 9 +++++----
 api/v3/Stripe/Importsubscription.php | 4 ++--
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/api/v3/Stripe/Importcharge.php b/api/v3/Stripe/Importcharge.php
index f6c96cc0..885e6241 100644
--- a/api/v3/Stripe/Importcharge.php
+++ b/api/v3/Stripe/Importcharge.php
@@ -83,7 +83,7 @@ function civicrm_api3_stripe_importcharge($params) {
     $sourceText = 'Stripe: Manual import via API';
   }
 
-  $is_test = isset($paymentProcessor['is_test']) && $paymentProcessor['is_test'] ? 1 : 0;
+  $is_test = isset($payment_processor['is_test']) && $payment_processor['is_test'] ? 1 : 0;
 
   // Check for a subscription.
   $subscription = CRM_Stripe_Api::getObjectParam('subscription_id', $stripeInvoice);
@@ -92,6 +92,7 @@ function civicrm_api3_stripe_importcharge($params) {
     // Lookup the contribution_recur_id.
     $cr_results = \Civi\Api4\ContributionRecur::get()
       ->addWhere('trxn_id', '=', $subscription)
+      ->addWhere('is_test', '=', $is_test)
       ->setCheckPermissions(FALSE)
       ->execute();
     $contribution_recur = $cr_results->first();
@@ -113,7 +114,7 @@ function civicrm_api3_stripe_importcharge($params) {
 
   // Check if a contribution already exists.
   $contribution_id = NULL;
-  if ($params['contribution_id']) {
+  if (isset($params['contribution_id'])) {
     // From user input.
     $contribution_id = $params['contribution_id'];
   }
@@ -130,7 +131,7 @@ function civicrm_api3_stripe_importcharge($params) {
     }
   }
 
-  // If it exists, we update by adding the id. 
+  // If it exists, we update by adding the id.
   if ($contribution_id) {
     $contributionParams['id'] = $contribution_id;
   }
@@ -150,7 +151,7 @@ function civicrm_api3_stripe_importcharge($params) {
     if ($contribution_recur_id) {
       $contributionParams['contribution_recur_id'] = $contribution_recur_id;
     }
-  } 
+  }
 
   $contribution = civicrm_api3('Contribution', 'create', $contributionParams);
   return civicrm_api3_create_success($contribution['values']);
diff --git a/api/v3/Stripe/Importsubscription.php b/api/v3/Stripe/Importsubscription.php
index f052b6dd..a440b565 100644
--- a/api/v3/Stripe/Importsubscription.php
+++ b/api/v3/Stripe/Importsubscription.php
@@ -47,7 +47,7 @@ function civicrm_api3_stripe_importsubscription($params) {
   }
   $customer = array_pop($custresult['values']);
   if ($customer['contact_id'] != $params['contact_id']) {
-    throw new API_Exception(E::ts("There is a mismatch between the contact id for the customer indicated by the subscription (%1) and the contact id provided via the API params (%2).", [ 1 => $customer['contact_id'], 2 => $params['contact_id']])); 
+    throw new API_Exception(E::ts("There is a mismatch between the contact id for the customer indicated by the subscription (%1) and the contact id provided via the API params (%2).", [ 1 => $customer['contact_id'], 2 => $params['contact_id']]));
   }
 
   // Create the recur record in CiviCRM if it doesn't exist.
@@ -73,7 +73,7 @@ function civicrm_api3_stripe_importsubscription($params) {
       'is_test' => isset($paymentProcessor['is_test']) && $paymentProcessor['is_test'] ? 1 : 0,
       'contribution_source' => !empty($params['contribution_source']) ? $params['contribution_source'] : '',
     ];
-    if ($params['recur_id']) {
+    if (isset($params['recur_id']) && $params['recur_id']) {
       $contributionRecurParams['id'] = $params['recur_id'];
     }
     $contributionRecur = civicrm_api3('ContributionRecur', 'create', $contributionRecurParams);
-- 
GitLab