mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-30 09:20:58 +01:00
cc586b0afa
Summary: various stripe stuff, including - external stripe library - payment form - test controller to play with payment form, sample business logic My main questions / discussion topics are... - is the stripe PHP library too big? (ie should I write something more simple just for phabricator?) -- if its cool, what is the best way to include the client? (ie should I make it a submodule rather than the flat copy here?) - is the JS I wrote (too) ridiculous? -- particularly unhappy with the error message stuff being in JS *but* it seemed the best choice given the most juicy error messages come from the stripe JS such that the overall code complexity is lowest this way. - how should the stripe JS be included? -- flat copy like I did here? -- some sort of external? -- can we just load it off stripe servers at request time? (I like that from the "if stripe is down, stripe is down" perspective) - wasn't sure if the date control was too silly and should just be baked into the form? -- for some reason I feel like its good to be prepared to walk away from Stripe / switch providers here, though I think this is on the wrong side of pragmatic Test Plan: - played around with sample client form Reviewers: epriestley Reviewed By: epriestley CC: aran Differential Revision: https://secure.phabricator.com/D2096
94 lines
2.4 KiB
PHP
94 lines
2.4 KiB
PHP
<?php
|
|
|
|
class Stripe_Customer extends Stripe_ApiResource
|
|
{
|
|
public static function constructFrom($values, $apiKey=null)
|
|
{
|
|
$class = get_class();
|
|
return self::scopedConstructFrom($class, $values, $apiKey);
|
|
}
|
|
|
|
public static function retrieve($id, $apiKey=null)
|
|
{
|
|
$class = get_class();
|
|
return self::_scopedRetrieve($class, $id, $apiKey);
|
|
}
|
|
|
|
public static function all($params=null, $apiKey=null)
|
|
{
|
|
$class = get_class();
|
|
return self::_scopedAll($class, $params, $apiKey);
|
|
}
|
|
|
|
public static function create($params=null, $apiKey=null)
|
|
{
|
|
$class = get_class();
|
|
return self::_scopedCreate($class, $params, $apiKey);
|
|
}
|
|
|
|
public function save()
|
|
{
|
|
$class = get_class();
|
|
return self::_scopedSave($class);
|
|
}
|
|
|
|
public function delete($params=null)
|
|
{
|
|
$class = get_class();
|
|
return self::_scopedDelete($class, $params);
|
|
}
|
|
|
|
public function addInvoiceItem($params=null)
|
|
{
|
|
if (!$params)
|
|
$params = array();
|
|
$params['customer'] = $this->id;
|
|
$ii = Stripe_InvoiceItem::create($params, $this->_apiKey);
|
|
return $ii;
|
|
}
|
|
|
|
public function invoices($params=null)
|
|
{
|
|
if (!$params)
|
|
$params = array();
|
|
$params['customer'] = $this->id;
|
|
$invoices = Stripe_Invoice::all($params, $this->_apiKey);
|
|
return $invoices;
|
|
}
|
|
|
|
public function invoiceItems($params=null)
|
|
{
|
|
if (!$params)
|
|
$params = array();
|
|
$params['customer'] = $this->id;
|
|
$iis = Stripe_InvoiceItem::all($params, $this->_apiKey);
|
|
return $iis;
|
|
}
|
|
|
|
public function charges($params=null)
|
|
{
|
|
if (!$params)
|
|
$params = array();
|
|
$params['customer'] = $this->id;
|
|
$charges = Stripe_Charge::all($params, $this->_apiKey);
|
|
return $charges;
|
|
}
|
|
|
|
public function updateSubscription($params=null)
|
|
{
|
|
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
|
$url = $this->instanceUrl() . '/subscription';
|
|
list($response, $apiKey) = $requestor->request('post', $url, $params);
|
|
$this->refreshFrom(array('subscription' => $response), $apiKey, true);
|
|
return $this->subscription;
|
|
}
|
|
|
|
public function cancelSubscription($params=null)
|
|
{
|
|
$requestor = new Stripe_ApiRequestor($this->_apiKey);
|
|
$url = $this->instanceUrl() . '/subscription';
|
|
list($response, $apiKey) = $requestor->request('delete', $url, $params);
|
|
$this->refreshFrom(array('subscription' => $response), $apiKey, true);
|
|
return $this->subscription;
|
|
}
|
|
}
|