<?php declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
use function get_class;
use function sprintf;
use function trim;
use PHPUnit\Framework\Error\Error;
use Throwable;
/**
* @internal This class is not covered by the backward compatibility promise for PHPUnit
*/
final class TestFailure
{
/**
* @var null|Test
*/
private $failedTest;
/**
* @var Throwable
*/
private $thrownException;
/**
* @var string
*/
private $testName;
/**
* Returns a description for an exception.
*/
public static function exceptionToString(Throwable $e): string
{
if ($e instanceof SelfDescribing) {
$buffer = $e->toString();
if ($e instanceof ExpectationFailedException && $e->getComparisonFailure()) {
$buffer .= $e->getComparisonFailure()->getDiff();
}
if ($e instanceof PHPTAssertionFailedError) {
$buffer .= $e->getDiff();
}
if (!empty($buffer)) {
$buffer = trim($buffer) . "\n";
}
return $buffer;
}
if ($e instanceof Error) {
return $e->getMessage() . "\n";
}
if ($e instanceof ExceptionWrapper) {
return $e->getClassName() . ': ' . $e->getMessage() . "\n";
}
return get_class($e) . ': ' . $e->getMessage() . "\n";
}
/**
* Constructs a TestFailure with the given test and exception.
*/
public function __construct(Test $failedTest, Throwable $t)
{
if ($failedTest instanceof SelfDescribing) {
$this->testName = $failedTest->toString();
} else {
$this->testName = get_class($failedTest);
}
if (!$failedTest instanceof TestCase || !$failedTest->isInIsolation()) {
$this->failedTest = $failedTest;
}
$this->thrownException = $t;
}
/**
* Returns a short description of the failure.
*/
public function toString(): string
{
return sprintf(
'%s: %s',
$this->testName,
$this->thrownException->getMessage(),
);
}
/**
* Returns a description for the thrown exception.
*/
public function getExceptionAsString(): string
{
return self::exceptionToString($this->thrownException);
}
/**
* Returns the name of the failing test (including data set, if any).
*/
public function getTestName(): string
{
return $this->testName;
}
/**
* Returns the failing test.
*
* Note: The test object is not set when the test is executed in process
* isolation.
*
* @see Exception
*/
public function failedTest(): ?Test
{
return $this->failedTest;
}
/**
* Gets the thrown exception.
*/
public function thrownException(): Throwable
{
return $this->thrownException;
}
/**
* Returns the exception's message.
*/
public function exceptionMessage(): string
{
return $this->thrownException()->getMessage();
}
/**
* Returns true if the thrown exception
* is of type AssertionFailedError.
*/
public function isFailure(): bool
{
return $this->thrownException() instanceof AssertionFailedError;
}
}
Initiates a new payment transaction.
create-order
| Parameter | Type | Details |
|---|---|---|
| amount | decimal | Your Amount , Must be rounded at 2 precision. |
| currency | string | Currency Code, Must be in Upper Case (Alpha-3 code) |
| success_url | string | Enter your return or success URL |
| cancel_url | string (optional) | Enter your cancel or failed URL |
Request Example (guzzle)
<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $base_url.'create-order', [
'headers' => [
'Authorization' => 'Bearer '. $authorizationToken,
'accept' => 'application/json',
'content-type' => 'application/json',
],
'form_params' => [
'amount' => '$amount',
'currency' => 'currency',
'success_url' => 'success_url',
'cancel_url' => 'cancel_url',
],
]);
echo $response->getBody();
**Response: SUCCESS (200 OK)**
{
"message": {
"success": [
"Order created successfully."
]
},
"data": {
"redirect_url":"https://example.com/login/OISADFDFSDFSF",
"order_details":{
"amount" : "10",
"fixed_charge" : 2,
"percent_charge" : 1,
"total_charge" : 3,
"total_payable" : 13,
"currency" : "USD",
"expiry_time": "2024-04-25T06:48:35.984285Z",
"success_url": "http://127.0.0.1/nfcpay/user/transaction/success",
"cancel_url": "http://127.0.0.1/nfcpay/user/transaction/cancel"
}
},
"type": "success"
}
**Response: ERROR (400 FAILED)**
{
"message": {
"error": [
"Invalid token."
]
},
"data": null,
"type": "error"
}