allow vendord
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
This commit is contained in:
176
vendor/fedapay/fedapay-php/lib/Transaction.php
vendored
Normal file
176
vendor/fedapay/fedapay-php/lib/Transaction.php
vendored
Normal file
@@ -0,0 +1,176 @@
|
||||
<?php
|
||||
|
||||
namespace FedaPay;
|
||||
|
||||
use FedaPay\Util\Util;
|
||||
|
||||
/**
|
||||
* Class Transaction
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $reference
|
||||
* @property string $description
|
||||
* @property string $callback_url
|
||||
* @property string $amount
|
||||
* @property string $status
|
||||
* @property int $transaction_id
|
||||
* @property string $created_at
|
||||
* @property string $updated_at
|
||||
*
|
||||
* @package FedaPay
|
||||
*/
|
||||
class Transaction extends Resource
|
||||
{
|
||||
use ApiOperations\All;
|
||||
use ApiOperations\Search;
|
||||
use ApiOperations\Retrieve;
|
||||
use ApiOperations\Create;
|
||||
use ApiOperations\CreateInBatch;
|
||||
use ApiOperations\Update;
|
||||
use ApiOperations\Save;
|
||||
use ApiOperations\Delete;
|
||||
|
||||
/**
|
||||
* Paid status list
|
||||
* @var array
|
||||
*/
|
||||
private static $PAID_STATUS = [
|
||||
'approved', 'transferred', 'refunded',
|
||||
'approved_partially_refunded', 'transferred_partially_refunded'
|
||||
];
|
||||
|
||||
/**
|
||||
* Check if the transaction was paid
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function wasPaid()
|
||||
{
|
||||
return in_array($this->status, self::$PAID_STATUS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the transacton was refunded. Status must include refunded.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function wasRefunded()
|
||||
{
|
||||
return strpos($this->status, 'refunded') !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the transacton was partially refunded. Status must include partially_refunded.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function wasPartiallyRefunded()
|
||||
{
|
||||
return strpos($this->status, 'partially_refunded') !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a payment token and url
|
||||
* @return FedaPay\FedaPayObject
|
||||
*/
|
||||
public function generateToken($params = [], $headers = [])
|
||||
{
|
||||
$url = $this->instanceUrl() . '/token';
|
||||
|
||||
list($response, $opts) = static::_staticRequest('post', $url, $params, $headers);
|
||||
return Util::arrayToFedaPayObject($response, $opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a payment token and url from transaction id method
|
||||
* @return FedaPay\FedaPayObject
|
||||
*/
|
||||
public static function generateTokenFromId($id, $params = [], $headers = [])
|
||||
{
|
||||
$path = static::resourcePath($id) . '/token';
|
||||
|
||||
list($response, $opts) = static::_staticRequest('post', $path, $params, $headers);
|
||||
|
||||
return Util::arrayToFedaPayObject($response, $opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send Mobile Money request with token
|
||||
* @param string $mode
|
||||
* @param string $token
|
||||
* @param array $params
|
||||
* @param array $headers
|
||||
*
|
||||
* @return FedaPay\FedaPayObject
|
||||
*/
|
||||
public function sendNowWithToken($mode, $token, $params = [], $headers = [])
|
||||
{
|
||||
$url = '/' . $mode;
|
||||
$params = array_merge(['token' => $token], $params);
|
||||
|
||||
list($response, $opts) = static::_staticRequest('post', $url, $params, $headers);
|
||||
return Util::arrayToFedaPayObject($response, $opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return transaction receipt URL
|
||||
* @param array $force
|
||||
* @param array $params
|
||||
* @param array $headers
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getReceiptURL($force = false, $params = [], $headers = [])
|
||||
{
|
||||
$receipt_url = $this->receipt_url;
|
||||
|
||||
if (is_null($receipt_url) || $force) {
|
||||
$url = $this->instanceUrl() . '/receipt_url';
|
||||
// Force Api to generate url
|
||||
if ($force) {
|
||||
$params['force'] = true;
|
||||
}
|
||||
|
||||
list($response, $opts) = static::_staticRequest('post', $url, $params, $headers);
|
||||
$urlObject = Util::arrayToFedaPayObject($response, $opts);
|
||||
|
||||
$receipt_url = $urlObject->url;
|
||||
}
|
||||
|
||||
return $receipt_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send Mobile Money request
|
||||
* @param string $mode
|
||||
* @param array $params
|
||||
* @param array $headers
|
||||
*
|
||||
* @return FedaPay\FedaPayObject
|
||||
*/
|
||||
public function sendNow($mode, $params = [], $headers = [])
|
||||
{
|
||||
$tokenObject = $this->generateToken([], $headers);
|
||||
|
||||
return $this->sendNowWithToken($mode, $tokenObject->token, $params, $headers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get transactions fees details
|
||||
* @param string $token
|
||||
* @param string $mode
|
||||
* @param array $params
|
||||
* @param array $headers
|
||||
*
|
||||
* @return FedaPay\FedaPayObject
|
||||
*/
|
||||
public function getFees($token, $mode, $params = [], $headers = [])
|
||||
{
|
||||
$url = static::classPath() . '/fees';
|
||||
|
||||
$params = array_merge(['token' => $token, 'mode' => $mode], $params);
|
||||
|
||||
list($response, $opts) = static::_staticRequest('get', $url, $params, $headers);
|
||||
return Util::arrayToFedaPayObject($response, $opts);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user