123 lines
3.9 KiB
PHP
Executable File

<?php
namespace Stripe;
/**
* Class Transfer
*
* @property string $id
* @property string $object
* @property int $amount
* @property int $amount_reversed
* @property string|null $balance_transaction
* @property int $created
* @property string $currency
* @property string|null $description
* @property string|null $destination
* @property string $destination_payment
* @property bool $livemode
* @property \Stripe\StripeObject $metadata
* @property \Stripe\Collection $reversals
* @property bool $reversed
* @property string|null $source_transaction
* @property string|null $source_type
* @property string|null $transfer_group
*
* @package Stripe
*/
class Transfer extends ApiResource
{
const OBJECT_NAME = 'transfer';
use ApiOperations\All;
use ApiOperations\Create;
use ApiOperations\NestedResource;
use ApiOperations\Retrieve;
use ApiOperations\Update;
const PATH_REVERSALS = '/reversals';
/**
* Possible string representations of the source type of the transfer.
* @link https://stripe.com/docs/api/transfers/object#transfer_object-source_type
*/
const SOURCE_TYPE_ALIPAY_ACCOUNT = 'alipay_account';
const SOURCE_TYPE_BANK_ACCOUNT = 'bank_account';
const SOURCE_TYPE_CARD = 'card';
const SOURCE_TYPE_FINANCING = 'financing';
/**
* @param array|null $params
* @param array|string|null $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return Transfer The canceled transfer.
*/
public function cancel($params = null, $opts = null)
{
$url = $this->instanceUrl() . '/cancel';
list($response, $opts) = $this->_request('post', $url, $params, $opts);
$this->refreshFrom($response, $opts);
return $this;
}
/**
* @param string $id The ID of the transfer on which to create the transfer reversal.
* @param array|null $params
* @param array|string|null $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return TransferReversal
*/
public static function createReversal($id, $params = null, $opts = null)
{
return self::_createNestedResource($id, static::PATH_REVERSALS, $params, $opts);
}
/**
* @param string $id The ID of the transfer to which the transfer reversal belongs.
* @param string $reversalId The ID of the transfer reversal to retrieve.
* @param array|null $params
* @param array|string|null $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return TransferReversal
*/
public static function retrieveReversal($id, $reversalId, $params = null, $opts = null)
{
return self::_retrieveNestedResource($id, static::PATH_REVERSALS, $reversalId, $params, $opts);
}
/**
* @param string $id The ID of the transfer to which the transfer reversal belongs.
* @param string $reversalId The ID of the transfer reversal to update.
* @param array|null $params
* @param array|string|null $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return TransferReversal
*/
public static function updateReversal($id, $reversalId, $params = null, $opts = null)
{
return self::_updateNestedResource($id, static::PATH_REVERSALS, $reversalId, $params, $opts);
}
/**
* @param string $id The ID of the transfer on which to retrieve the transfer reversals.
* @param array|null $params
* @param array|string|null $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return Collection The list of transfer reversals.
*/
public static function allReversals($id, $params = null, $opts = null)
{
return self::_allNestedResources($id, static::PATH_REVERSALS, $params, $opts);
}
}