97 lines
3.1 KiB
PHP
97 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace Omnipay\SecurePay\Message;
|
|
|
|
use Omnipay\Tests\TestCase;
|
|
|
|
class DirectPostCompletePurchaseRequestTest extends TestCase
|
|
{
|
|
public function setUp()
|
|
{
|
|
$this->request = new DirectPostCompletePurchaseRequest($this->getHttpClient(), $this->getHttpRequest());
|
|
}
|
|
|
|
public function testGenerateResponseFingerprint()
|
|
{
|
|
$this->request->initialize(array(
|
|
'amount' => '465.18',
|
|
'transactionPassword' => 'abc123',
|
|
));
|
|
|
|
$data = array(
|
|
'timestamp' => '20130602102927',
|
|
'merchant' => 'ABC0030',
|
|
'refid' => '222',
|
|
'summarycode' => '2',
|
|
);
|
|
|
|
$this->assertSame('0516a31bf96ad89c354266afb9bd4be43aaf853f', $this->request->generateResponseFingerprint($data));
|
|
}
|
|
|
|
public function testSuccess()
|
|
{
|
|
$this->request->initialize(array(
|
|
'amount' => '355.00',
|
|
'transactionPassword' => 'abc123',
|
|
));
|
|
|
|
$this->getHttpRequest()->query->replace(array(
|
|
'timestamp' => '20130602112954',
|
|
'callback_status_code' => '',
|
|
'fingerprint' => 'd9b40fc6f841f41ef3475220fe6316406a5256ce',
|
|
'txnid' => '205861',
|
|
'merchant' => 'ABC0030',
|
|
'restext' => 'Approved',
|
|
'rescode' => '00',
|
|
'expirydate' => '032016',
|
|
'settdate' => '20130602',
|
|
'refid' => '226',
|
|
'pan' => '444433...111',
|
|
'summarycode' => '1',
|
|
));
|
|
|
|
$response = $this->request->send();
|
|
|
|
$this->assertInstanceOf('Omnipay\\SecurePay\\Message\\DirectPostCompletePurchaseResponse', $response);
|
|
|
|
$this->assertTrue($response->isSuccessful());
|
|
$this->assertFalse($response->isRedirect());
|
|
$this->assertSame('205861', $response->getTransactionReference());
|
|
$this->assertSame('Approved', $response->getMessage());
|
|
$this->assertSame('00', $response->getCode());
|
|
}
|
|
|
|
public function testFailure()
|
|
{
|
|
$this->request->initialize(array(
|
|
'amount' => '465.18',
|
|
'transactionPassword' => 'abc123',
|
|
));
|
|
|
|
$this->getHttpRequest()->query->replace(array(
|
|
'timestamp' => '20130602102927',
|
|
'callback_status_code' => '',
|
|
'fingerprint' => '0516a31bf96ad89c354266afb9bd4be43aaf853f',
|
|
'txnid' => '205833',
|
|
'merchant' => 'ABC0030',
|
|
'restext' => 'Customer Dispute',
|
|
'rescode' => '18',
|
|
'expirydate' => '052016',
|
|
'settdate' => '20130602',
|
|
'refid' => '222',
|
|
'pan' => '444433...111',
|
|
'summarycode' => '2',
|
|
));
|
|
|
|
$response = $this->request->send();
|
|
|
|
$this->assertInstanceOf('Omnipay\\SecurePay\\Message\\DirectPostCompletePurchaseResponse', $response);
|
|
|
|
$this->assertFalse($response->isSuccessful());
|
|
$this->assertFalse($response->isRedirect());
|
|
$this->assertSame('205833', $response->getTransactionReference());
|
|
$this->assertSame('Customer Dispute', $response->getMessage());
|
|
$this->assertSame('18', $response->getCode());
|
|
}
|
|
}
|