59 lines
1.7 KiB
PHP
59 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Srmklive\PayPal\Traits\PayPalAPI;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
trait Reporting
|
|
{
|
|
/**
|
|
* List all transactions.
|
|
*
|
|
* @param array $filters
|
|
* @param string $fields
|
|
*
|
|
* @throws \Throwable
|
|
*
|
|
* @return array|\Psr\Http\Message\StreamInterface|string
|
|
*
|
|
* @see https://developer.paypal.com/docs/api/transaction-search/v1/#transactions_get
|
|
*/
|
|
public function listTransactions(array $filters, string $fields = 'all')
|
|
{
|
|
$filters_list = collect($filters)->isEmpty() ? '' :
|
|
collect($filters)->map(function ($value, $key) {
|
|
return "{$key}={$value}&";
|
|
})->implode('');
|
|
|
|
$this->apiEndPoint = "v1/reporting/transactions?{$filters_list}fields={$fields}&page={$this->current_page}&page_size={$this->page_size}";
|
|
|
|
$this->verb = 'get';
|
|
|
|
return $this->doPayPalRequest();
|
|
}
|
|
|
|
/**
|
|
* List available balance.
|
|
*
|
|
* @param string $date
|
|
* @param string $balance_currency
|
|
*
|
|
* @throws \Throwable
|
|
*
|
|
* @return array|\Psr\Http\Message\StreamInterface|string
|
|
*
|
|
* @see https://developer.paypal.com/docs/api/transaction-search/v1/#balances_get
|
|
*/
|
|
public function listBalances(string $date = '', string $balance_currency = '')
|
|
{
|
|
$date = empty($date) ? Carbon::now()->toIso8601ZuluString() : Carbon::parse($date)->toIso8601ZuluString();
|
|
$currency = empty($balance_currency) ? $this->getCurrency() : $balance_currency;
|
|
|
|
$this->apiEndPoint = "v1/reporting/balances?currency_code={$currency}&as_of_time={$date}";
|
|
|
|
$this->verb = 'get';
|
|
|
|
return $this->doPayPalRequest();
|
|
}
|
|
}
|