From 760eb2b1cf6a6e212b813744e035aac0cd41c5ad Mon Sep 17 00:00:00 2001
From: berdir <berdir@214652.no-reply.drupal.org>
Date: Tue, 3 Nov 2020 11:20:01 +0100
Subject: [PATCH] Issue #3119674 by Berdir: Payment methods without expiration
 date like twint result in an error when saving alias

---
 src/Plugin/Commerce/PaymentGateway/Datatrans.php | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/Plugin/Commerce/PaymentGateway/Datatrans.php b/src/Plugin/Commerce/PaymentGateway/Datatrans.php
index cccc32e..41b3800 100644
--- a/src/Plugin/Commerce/PaymentGateway/Datatrans.php
+++ b/src/Plugin/Commerce/PaymentGateway/Datatrans.php
@@ -402,9 +402,11 @@ class Datatrans extends OffsitePaymentGatewayBase {
       'expy' => $payment_details['expy'],
     ]);
 
-    $expires = CreditCard::calculateExpirationTimestamp($payment_details['expm'], $payment_details['expy']);
     $payment_method->setRemoteId($payment_details['aliasCC']);
-    $payment_method->setExpiresTime($expires);
+    if (!empty($payment_details['expm']) && !empty($payment_details['expy'])) {
+      $expires = CreditCard::calculateExpirationTimestamp($payment_details['expm'], $payment_details['expy']);
+      $payment_method->setExpiresTime($expires);
+    }
     $payment_method->save();
     return $payment_method;
   }
-- 
GitLab