Skip to content

Commit ed55a99

Browse files
authored
Merge pull request #37 from sudiptpa/fix/adding-exception
Added Invalidfingerprint Exception with support to grab returned Data.
2 parents 6d09188 + 203f3b3 commit ed55a99

6 files changed

+33
-9
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace Omnipay\NABTransact\Exception;
4+
5+
class InvalidFingerprintException extends \Exception implements \Omnipay\Common\Exception\OmnipayException
6+
{
7+
private $data = [];
8+
9+
public function __construct($message, $data = [])
10+
{
11+
$this->data = $data;
12+
13+
parent::__construct($message);
14+
}
15+
16+
public function getData()
17+
{
18+
return $this->data;
19+
}
20+
}

src/Message/DirectPostCompletePurchaseRequest.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Omnipay\NABTransact\Message;
44

5-
use Omnipay\Common\Exception\InvalidRequestException;
5+
use Omnipay\NABTransact\Exception\InvalidFingerprintException;
66

77
/**
88
* NABTransact Direct Post Complete Purchase Request.
@@ -13,8 +13,12 @@ public function getData()
1313
{
1414
$data = $this->httpRequest->query->all();
1515

16-
if ($this->generateResponseFingerprint($data) !== $this->httpRequest->query->get('fingerprint')) {
17-
throw new InvalidRequestException('Invalid fingerprint');
16+
$received_fingerprint = $this->httpRequest->query->get('fingerprint');
17+
18+
$generated_fingerprint = $this->generateResponseFingerprint($data);
19+
20+
if ($generated_fingerprint !== $received_fingerprint) {
21+
throw new InvalidFingerprintException('Invalid fingerprint', $data);
1822
}
1923

2024
return $data;

tests/Message/DirectPostAuthorizeRequestTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public function testFingerprint()
3232
$data = $this->request->getData();
3333
$data['EPS_TIMESTAMP'] = '20161126053143';
3434

35-
$this->assertSame('687bb11413254824e3f854be330b5b5f2efaaf6d', $this->request->generateFingerprint($data));
35+
$this->assertSame('a748577a6fe6fbbda744a4df9e36595bd1a9bcaefc88f360ea60126c93ffc042', $this->request->generateFingerprint($data));
3636
}
3737

3838
public function testSend()

tests/Message/DirectPostCompletePurchaseRequestTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function testGenerateResponseFingerprint()
2828
];
2929

3030
$this->assertSame(
31-
'79200d1df5dc3f914a90ce476fdef317d224629f',
31+
'56dc3f5dc4473d66138913317e743ea208e205a3be1abdd6515b5c5578a58f38',
3232
$this->request->generateResponseFingerprint($data)
3333
);
3434
}
@@ -47,7 +47,7 @@ public function testSuccess()
4747
[
4848
'timestamp' => '20161125130241',
4949
'callback_status_code' => '-1',
50-
'fingerprint' => 'e30eb8381bc41201fbdf54a021d8228a3fbb6a6f',
50+
'fingerprint' => '796a4f3ac07d04f2336188ffe5a4befeb9fcb6f756061d4e42a30f228cda420e',
5151
'txnid' => '271337',
5252
'merchant' => 'XYZ0010',
5353
'restext' => 'Approved',
@@ -84,7 +84,7 @@ public function testFailure()
8484
$this->getHttpRequest()->query->replace([
8585
'timestamp' => '20161126051715',
8686
'callback_status_code' => '404',
87-
'fingerprint' => 'cd75e2ef38cf63a2fa390024539acc7691eebc1d',
87+
'fingerprint' => 'd94853f8c8d1bc1b21978f64cc866d824d2feca61224afb9a4e31a9c286d0008',
8888
'txnid' => '274279',
8989
'merchant' => 'XYZ0010',
9090
'restext' => 'Customer Dispute',

tests/Message/DirectPostPurchaseRequestTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public function testFingerprint()
3333
$data['EPS_TIMESTAMP'] = '20161125123332';
3434

3535
$this->assertSame(
36-
'cbb64e71e360dba6337f22a00bdf0d0b89a7a568',
36+
'8d0ca8e666d5e83f8ce9b0d661dafd2328b1c3c58e8a3118cdab2feef9bfaac5',
3737
$this->request->generateFingerprint($data)
3838
);
3939
}

tests/Message/UnionPayPurchaseRequestTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function testFingerprint()
3434
$data['EPS_TIMESTAMP'] = '20161125123332';
3535

3636
$this->assertSame(
37-
'36e686feef0ec7a53d5b6289707bc47e4bb83c95',
37+
'a44c4e30e838b34bfbcbe89495f50c1527c1c2c4229960b8d9de159fb5a99f20',
3838
$this->request->generateFingerprint($data)
3939
);
4040
}

0 commit comments

Comments
 (0)