Skip to content

Commit a0b3ad6

Browse files
committed
Support multiple response code error messages
1 parent 02089f6 commit a0b3ad6

File tree

2 files changed

+34
-5
lines changed

2 files changed

+34
-5
lines changed

src/Omnipay/Eway/Message/RapidResponse.php

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,13 +184,18 @@ public function getTransactionReference()
184184

185185
public function getMessage()
186186
{
187-
$code = $this->getCode();
187+
$codes = explode(',', $this->getCode());
188+
$messages = array();
188189

189-
if (isset(static::$MESSAGES[$code])) {
190-
return static::$MESSAGES[$code];
191-
} else {
192-
return $code;
190+
foreach ($codes as $code) {
191+
if (isset(static::$MESSAGES[$code])) {
192+
$messages[] = static::$MESSAGES[$code];
193+
} else {
194+
$messages[] = $code;
195+
}
193196
}
197+
198+
return implode(', ', $messages) ?: null;
194199
}
195200

196201
public function getCode()
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace Omnipay\Eway\Message;
4+
5+
use Omnipay\Tests\TestCase;
6+
7+
class RapidResponseTest extends TestCase
8+
{
9+
public function testGetMessage()
10+
{
11+
$data = array('ResponseMessage' => 'A2000');
12+
$response = new RapidResponse($this->getMockRequest(), $data);
13+
14+
$this->assertSame('Transaction Approved', $response->getMessage());
15+
}
16+
17+
public function testGetMessageMultiple()
18+
{
19+
$data = array('ResponseMessage' => 'V6101,V6102');
20+
$response = new RapidResponse($this->getMockRequest(), $data);
21+
22+
$this->assertSame('Invalid EWAY_CARDEXPIRYMONTH, Invalid EWAY_CARDEXPIRYYEAR', $response->getMessage());
23+
}
24+
}

0 commit comments

Comments
 (0)