Skip to content

Commit 72c75fb

Browse files
committed
Add CreditCard::getNumberLastFour()
1 parent db52148 commit 72c75fb

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

src/Omnipay/Common/CreditCard.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,11 @@ public function setNumber($value)
192192
return $this->setParameter('number', preg_replace('/\D/', '', $value));
193193
}
194194

195+
public function getNumberLastFour()
196+
{
197+
return substr($this->getNumber(), -4, 4) ?: null;
198+
}
199+
195200
/**
196201
* Credit Card Brand
197202
*

tests/Omnipay/Common/CreditCardTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,24 @@ public function testSetNumberStripsNonDigits()
161161
$this->assertEquals('4000000000000000', $this->card->getNumber());
162162
}
163163

164+
public function testGetNumberLastFourNull()
165+
{
166+
$this->card->setNumber(null);
167+
$this->assertNull($this->card->getNumberLastFour());
168+
}
169+
170+
public function testGetNumberLastFour()
171+
{
172+
$this->card->setNumber('4000000000001234');
173+
$this->assertSame('1234', $this->card->getNumberLastFour());
174+
}
175+
176+
public function testGetNumberLastFourNonDigits()
177+
{
178+
$this->card->setNumber('4000 0000 0000 12x34');
179+
$this->assertSame('1234', $this->card->getNumberLastFour());
180+
}
181+
164182
public function testGetBrandDefault()
165183
{
166184
$card = new CreditCard;

0 commit comments

Comments
 (0)