<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\HttpKernel\Profiler;
use Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface;
/**
* Profile.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
class Profile
{
private string $token;
/**
* @var DataCollectorInterface[]
*/
private array $collectors = [];
private ?string $ip = null;
private ?string $method = null;
private ?string $url = null;
private ?int $time = null;
private ?int $statusCode = null;
private ?self $parent = null;
/**
* @var Profile[]
*/
private array $children = [];
public function __construct(string $token)
{
$this->token = $token;
}
public function setToken(string $token)
{
$this->token = $token;
}
/**
* Gets the token.
*/
public function getToken(): string
{
return $this->token;
}
/**
* Sets the parent token.
*/
public function setParent(self $parent)
{
$this->parent = $parent;
}
/**
* Returns the parent profile.
*/
public function getParent(): ?self
{
return $this->parent;
}
/**
* Returns the parent token.
*/
public function getParentToken(): ?string
{
return $this->parent ? $this->parent->getToken() : null;
}
/**
* Returns the IP.
*/
public function getIp(): ?string
{
return $this->ip;
}
public function setIp(?string $ip)
{
$this->ip = $ip;
}
/**
* Returns the request method.
*/
public function getMethod(): ?string
{
return $this->method;
}
public function setMethod(string $method)
{
$this->method = $method;
}
/**
* Returns the URL.
*/
public function getUrl(): ?string
{
return $this->url;
}
public function setUrl(?string $url)
{
$this->url = $url;
}
public function getTime(): int
{
return $this->time ?? 0;
}
public function setTime(int $time)
{
$this->time = $time;
}
public function setStatusCode(int $statusCode)
{
$this->statusCode = $statusCode;
}
public function getStatusCode(): ?int
{
return $this->statusCode;
}
/**
* Finds children profilers.
*
* @return self[]
*/
public function getChildren(): array
{
return $this->children;
}
/**
* Sets children profiler.
*
* @param Profile[] $children
*/
public function setChildren(array $children)
{
$this->children = [];
foreach ($children as $child) {
$this->addChild($child);
}
}
/**
* Adds the child token.
*/
public function addChild(self $child)
{
$this->children[] = $child;
$child->setParent($this);
}
public function getChildByToken(string $token): ?self
{
foreach ($this->children as $child) {
if ($token === $child->getToken()) {
return $child;
}
}
return null;
}
/**
* Gets a Collector by name.
*
* @throws \InvalidArgumentException if the collector does not exist
*/
public function getCollector(string $name): DataCollectorInterface
{
if (!isset($this->collectors[$name])) {
throw new \InvalidArgumentException(sprintf('Collector "%s" does not exist.', $name));
}
return $this->collectors[$name];
}
/**
* Gets the Collectors associated with this profile.
*
* @return DataCollectorInterface[]
*/
public function getCollectors(): array
{
return $this->collectors;
}
/**
* Sets the Collectors associated with this profile.
*
* @param DataCollectorInterface[] $collectors
*/
public function setCollectors(array $collectors)
{
$this->collectors = [];
foreach ($collectors as $collector) {
$this->addCollector($collector);
}
}
/**
* Adds a Collector.
*/
public function addCollector(DataCollectorInterface $collector)
{
$this->collectors[$collector->getName()] = $collector;
}
public function hasCollector(string $name): bool
{
return isset($this->collectors[$name]);
}
public function __sleep(): array
{
return ['token', 'parent', 'children', 'collectors', 'ip', 'method', 'url', 'time', 'statusCode'];
}
}
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"
}