From 2966ad278c5b2706d6c330ed3a0b6e07a37b233a Mon Sep 17 00:00:00 2001
From: "Matthew Wire (MJW Consulting)" <mjw@mjwconsult.co.uk>
Date: Tue, 17 Sep 2019 12:01:29 +0100
Subject: [PATCH] Fix issue with charge.succeeded triggering error on recurring
 contributions

---
 CRM/Core/Payment/StripeIPN.php | 2 +-
 CRM/Stripe/Api.php             | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/CRM/Core/Payment/StripeIPN.php b/CRM/Core/Payment/StripeIPN.php
index 5d096c55..47adc033 100644
--- a/CRM/Core/Payment/StripeIPN.php
+++ b/CRM/Core/Payment/StripeIPN.php
@@ -238,7 +238,7 @@ class CRM_Core_Payment_StripeIPN extends CRM_Core_Payment_BaseIPN {
           $params = [
             'id' => $this->contribution['id'],
             'trxn_date' => $this->receive_date,
-            'contribution_trxn_id' => $this->charge_id,
+            'contribution_trxn_id' => $this->invoice_id ?: $this->charge_id,
             'payment_trxn_id' => $this->charge_id,
             'total_amount' => $this->amount,
             'fee_amount' => $this->fee,
diff --git a/CRM/Stripe/Api.php b/CRM/Stripe/Api.php
index a672f446..554563b3 100644
--- a/CRM/Stripe/Api.php
+++ b/CRM/Stripe/Api.php
@@ -34,6 +34,9 @@ class CRM_Stripe_Api {
           case 'receive_date':
             return self::formatDate($stripeObject->created);
 
+          case 'invoice_id':
+            return (string) $stripeObject->invoice;
+
         }
         break;
 
-- 
GitLab