Skip to content

Commit 80cd3cd

Browse files
committed
Merge pull request #31 from Raistlfiren/accounts
Accounts
2 parents 4753672 + 8a440f2 commit 80cd3cd

26 files changed

+3040
-37
lines changed

README.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,21 @@ use Stripe\Stripe;
2121
$stripe = new Stripe("your_api_key");
2222
```
2323

24+
#### Charges calls
25+
```php
26+
// create a charge
27+
$request = $stripe->charges->createChargeRequest(350, "usd")->setCustomer($customer->getId());
28+
$stripe->charges->createCharge($request);
29+
30+
//Without a Customer
31+
$card Request = new CreateCardRequest($number, $expMonth, $expYear, $cvc);
32+
$request = $stripe->charges->createChargeRequest(350, "usd")->setCard($card);
33+
$stripe->charges->createCharge($request);
34+
35+
// retrieve a charge
36+
$charge = $stripe->charges->getCharge("charge_id");
37+
```
38+
2439
#### Customers calls
2540
```php
2641
use Stripe\Request\Cards\CreateCardRequest;
@@ -37,15 +52,5 @@ $customerId = $customer->getId();
3752
$customer = $stripe->customers()->getCustomer("customer_id");
3853
```
3954

40-
#### Charges calls
41-
```php
42-
// create a charge
43-
$request = $stripe->charges->createChargeRequest(350, "usd")->setCustomer($customer->getId());
44-
$stripe->charges->createCharge($request);
45-
46-
// retrieve a charge
47-
$charge = $stripe->charges->getCharge("charge_id");
48-
```
49-
5055
## Development Status
5156
Currently, all Stripe API calls which do not require [Stripe Connect](https://stripe.com/docs/connect) have been implemented. Documentation and Stripe Connect calls are next on the to-do list.

docs/api/accounts.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,36 @@
11
# [Accounts](https://github.com/jlinn/stripe-api-php/blob/master/src/Api/Accounts.php)
2-
## Retrieve account data
2+
## Retrieve default account data
33
```php
44
$account = $stripe->accounts->getAccount();
5+
```
6+
7+
## Create an account
8+
The `createAccount()` method takes a [`CreateAccountRequest`](https://github.com/jlinn/stripe-api-php/blob/master/src/Request/Accounts/CreateAccountRequest.php) object as its only parameter. This parameter is optional.
9+
```php
10+
$newAccount = new CreateAccountRequest();
11+
$newAccount->setManaged(true);
12+
$request = $stripe->accounts->createAccount($newAccount);
13+
```
14+
15+
## Retrieve a connected account
16+
```php
17+
$customer = $stripe->accounts->getConnectedAccount("account_id");
18+
```
19+
20+
## Update an account
21+
The `UpdateAccount()` method takes an [`UpdateAccountRequest`](https://github.com/jlinn/stripe-api-php/blob/master/src/Request/Accounts/UpdateAccountRequest.php) object as its second parameter.
22+
```php
23+
$newAccount = new UpdateAccountRequest();
24+
$newAccount->setManaged(false);
25+
$request = $stripe->accounts->updateAccount($accountId, $newAccount);
26+
```
27+
28+
## Delete an account
29+
```php
30+
$stripe->accounts->deleteAccount("$accountId");
31+
```
32+
33+
## List accounts
34+
```php
35+
$accounts = $stripe->accounts->listAccounts();
536
```

src/Api/Accounts.php

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,19 @@
88
namespace Stripe\Api;
99

1010
use Stripe\Request\Accounts\CreateAccountRequest;
11+
use Stripe\Request\Accounts\UpdateAccountRequest;
12+
use Stripe\Request\ListRequest;
1113
use Stripe\Response\Accounts\AccountResponse;
14+
use Stripe\Response\Accounts\ListAccountsResponse;
15+
use Stripe\Response\DeleteResponse;
1216

1317
class Accounts extends AbstractApi
1418
{
1519
const ACCOUNT_RESPONSE_CLASS = 'Stripe\Response\Accounts\AccountResponse';
20+
const LIST_ACCOUNT_RESPONSE_CLASS = 'Stripe\Response\Accounts\ListAccountsResponse';
1621

1722
/**
23+
* Retrieves default/main account
1824
* @return AccountResponse
1925
* @link https://stripe.com/docs/api/curl#retrieve_account
2026
*/
@@ -33,11 +39,61 @@ public function createAccount(CreateAccountRequest $request)
3339
return $this->client->post('accounts', self::ACCOUNT_RESPONSE_CLASS, $request);
3440
}
3541

42+
/**
43+
* @param string $accountId
44+
* @return AccountResponse
45+
* @link https://stripe.com/docs/api/curl#retrieve_account
46+
*/
47+
public function getConnectedAccount($accountId)
48+
{
49+
return $this->client->get($this->buildUrl($accountId), self::ACCOUNT_RESPONSE_CLASS);
50+
}
51+
52+
/**
53+
* @param string $accountId
54+
* @param UpdateAccountRequest $request
55+
* @return AccountResponse
56+
* @link https://stripe.com/docs/api/curl#update_account
57+
*/
58+
public function updateAccount($accountId, UpdateAccountRequest $request)
59+
{
60+
return $this->client->post($this->buildUrl($accountId), self::ACCOUNT_RESPONSE_CLASS, $request);
61+
}
62+
63+
/**
64+
* @param string $accountId
65+
* @return DeleteResponse
66+
* @link https://stripe.com/docs/api/curl#delete_account
67+
*/
68+
public function deleteConnectedAccount($accountId)
69+
{
70+
return $this->client->delete($this->buildUrl($accountId), self::DELETE_RESPONSE_CLASS);
71+
}
72+
73+
/**
74+
* @param ListRequest $request
75+
* @return ListAccountsResponse
76+
* @link https://stripe.com/docs/api/curl#list_accounts
77+
*/
78+
public function listConnectedAccounts(ListRequest $request = null)
79+
{
80+
return $this->client->get('accounts', self::LIST_ACCOUNT_RESPONSE_CLASS, null, $this->listRequestToParams($request));
81+
}
82+
3683
/**
3784
* @return CreateAccountRequest
3885
*/
3986
public function createAccountRequest()
4087
{
4188
return new CreateAccountRequest();
4289
}
90+
91+
/**
92+
* @param string $customerId
93+
* @return string
94+
*/
95+
protected function buildUrl($customerId)
96+
{
97+
return 'accounts/' . $customerId;
98+
}
4399
}

0 commit comments

Comments
 (0)