| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- namespace Stripe;
- /**
- * Class ExternalAccount
- *
- * @package Stripe
- */
- abstract class ExternalAccount extends ApiResource
- {
- /**
- * @return string The instance URL for this resource. It needs to be special
- * cased because it doesn't fit into the standard resource pattern.
- */
- public function instanceUrl()
- {
- $id = $this['id'];
- if (!$id) {
- $class = get_class($this);
- $msg = "Could not determine which URL to request: $class instance "
- . "has invalid ID: $id";
- throw new Error\InvalidRequest($msg, null);
- }
- if ($this['customer']) {
- $parent = $this['customer'];
- $base = Customer::classUrl();
- $path = 'sources';
- } elseif ($this['account']) {
- $parent = $this['account'];
- $base = Account::classUrl();
- $path = 'external_accounts';
- } elseif ($this['recipient']) {
- $parent = $this['recipient'];
- $base = Recipient::classUrl();
- $path = 'cards';
- } else {
- return null;
- }
- $parent = Util\Util::utf8($parent);
- $id = Util\Util::utf8($id);
- $parentExtn = urlencode($parent);
- $extn = urlencode($id);
- return "$base/$parentExtn/$path/$extn";
- }
- /**
- * @param array|null $params
- * @param array|string|null $opts
- *
- * @return ExternalAccount The deleted external account.
- */
- public function delete($params = null, $opts = null)
- {
- return $this->_delete($params, $opts);
- }
- /**
- * @param array|string|null $opts
- *
- * @return ExternalAccount The saved external account.
- */
- public function save($opts = null)
- {
- return $this->_save($opts);
- }
- /**
- * @param array|null $params
- * @param array|string|null $opts
- *
- * @return ExternalAccount The verified (or not) external account.
- */
- public function verify($params = null, $opts = null)
- {
- if ($this['customer']) {
- $url = $this->instanceUrl() . '/verify';
- list($response, $options) = $this->_request('post', $url, $params, $opts);
- $this->refreshFrom($response, $options);
- return $this;
- } else {
- $message = 'Only customer external accounts can be verified in this manner.';
- throw new Error\Api($message);
- }
- }
- }
|