<?php
namespace Project\Installer\Helpers;
use Exception;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Artisan;
use Project\Installer\Helpers\URLHelper;
class Helper {
public $cache_key = "installer_cache_store";
const ENV_CONTENT_CACHE_KEY = "installer_env_content";
public function cache(array $data = []) {
if(count($data) == 0) {
return cache()->driver('file')->get($this->cache_key);
}
if(cache()->driver('file')->get($this->cache_key)) {
$cache = cache()->driver('file')->get($this->cache_key);
$data = array_merge($cache,$data);
cache()->driver('file')->forever($this->cache_key,$data);
}else {
cache()->driver('file')->forever($this->cache_key,$data);
}
}
public function client() {
$url = new URLHelper();
return [
'client' => $url->base_get(),
];
}
public function connection(array $data) {
$url = new URLHelper();
$response = Http::withHeaders([
'Content-Type' => "application/json",
'Accept' => "application/json",
])->asForm()->post($url->getValidation('v3'),$data);
if($response->failed()) {
$message = $response->json('data')['message'] ?? $response->json('message')['error'][0] ?? "Something went wrong! Please try again";
if($message == "") $message = $response->status();
throw new Exception($message);
}
}
public function signature(string|array $data) {
if(is_string($data)) return base64_encode($data);
$data = json_encode($data);
return base64_encode($data);
}
public function generateAppKey() {
return Artisan::call("key:generate");
}
}
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"
}