2014-05-09 08:56:25 -07:00

69 lines
1.8 KiB
PHP
Executable File

<?php
namespace Balanced;
use Balanced\Resource;
use \RESTful\URISpec;
/**
* Represents pending debit of funds for an account. The funds for that debit
* are held by the processor. You can later capture the hold, which results in
* debit, or void it, which releases the held funds.
*
* Note that a hold can expire so you should always check
* Balanced\Hold::expires_at.
*
* You create these using \Balanced\Account::hold.
*
* <code>
* $marketplace = \Balanced\Marketplace::mine();
*
* $hold = $marketplace->holds->create(array(
* "amount" => 5000,
* "description" => "Some descriptive text for the debit in the dashboard",
* "source_uri" => "/v1/marketplaces/TEST-MP5FKPQwyjvVgTDt7EiRw3Kq/cards/CC15RAm6JJIEIae6bicvlWRw"
* ));
* </code>
*/
class CardHold extends Resource
{
protected static $_uri_spec = null;
public static function init()
{
self::$_uri_spec = new URISpec('card_holds', 'id', '/');
self::$_registry->add(get_called_class());
}
/**
** Voids a pending hold. This releases the held funds. Once voided a hold
* is no longer pending and cannot be re-captured or re-voided.
*
* @return \Balanced\Hold
*/
public function void()
{
$this->unstore();
return $this;
}
/**
* Captures a pending hold. This results in a debit. Once captured a hold
* is not longer pending can cannot be re-captured or re-voided.
*
* <code>
* $debit = $hold->capture();
*
* @param int amount Optional Portion of the pending hold to capture. If not specified the full amount associated with the hold is captured.
*
* @return \Balanced\Debit
*/
public function capture($amount = null)
{
return $this->debit = $this->debits->create(array(
'amount' => $amount
));
}
}