PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.15.4
GiveWP – Donation Plugin and Fundraising Platform v4.15.4
4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 All 255 releases
give / vendor / stripe / stripe-php / lib / Service / OAuthService.php

OAuthService.php in GiveWP – Donation Plugin and Fundraising Platform 4.15.4, at vendor/stripe/stripe-php/lib/Service/OAuthService.php

151 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Stripe\Service;
4
5 class OAuthService extends \Stripe\Service\AbstractService
6 {
7 /**
8 * Sends a request to Stripe's Connect API.
9 *
10 * @param string $method the HTTP method
11 * @param string $path the path of the request
12 * @param array $params the parameters of the request
13 * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request
14 *
15 * @return \Stripe\StripeObject the object returned by Stripe's Connect API
16 */
17 protected function requestConnect($method, $path, $params, $opts)
18 {
19 $opts = $this->_parseOpts($opts);
20 $opts->apiBase = $this->_getBase($opts);
21
22 return $this->request($method, $path, $params, $opts);
23 }
24
25 /**
26 * Generates a URL to Stripe's OAuth form.
27 *
28 * @param null|array $params
29 * @param null|array $opts
30 *
31 * @return string the URL to Stripe's OAuth form
32 */
33 public function authorizeUrl($params = null, $opts = null)
34 {
35 $params = $params ?: [];
36
37 $opts = $this->_parseOpts($opts);
38 $base = $this->_getBase($opts);
39
40 $params['client_id'] = $this->_getClientId($params);
41 if (!\array_key_exists('response_type', $params)) {
42 $params['response_type'] = 'code';
43 }
44 $query = \Stripe\Util\Util::encodeParameters($params);
45
46 return $base . '/oauth/authorize?' . $query;
47 }
48
49 /**
50 * Use an authoriztion code to connect an account to your platform and
51 * fetch the user's credentials.
52 *
53 * @param null|array $params
54 * @param null|array $opts
55 *
56 * @throws \Stripe\Exception\OAuth\OAuthErrorException if the request fails
57 *
58 * @return \Stripe\StripeObject object containing the response from the API
59 */
60 public function token($params = null, $opts = null)
61 {
62 $params = $params ?: [];
63 $params['client_secret'] = $this->_getClientSecret($params);
64
65 return $this->requestConnect('post', '/oauth/token', $params, $opts);
66 }
67
68 /**
69 * Disconnects an account from your platform.
70 *
71 * @param null|array $params
72 * @param null|array $opts
73 *
74 * @throws \Stripe\Exception\OAuth\OAuthErrorException if the request fails
75 *
76 * @return \Stripe\StripeObject object containing the response from the API
77 */
78 public function deauthorize($params = null, $opts = null)
79 {
80 $params = $params ?: [];
81 $params['client_id'] = $this->_getClientId($params);
82
83 return $this->requestConnect('post', '/oauth/deauthorize', $params, $opts);
84 }
85
86 private function _getClientId($params = null)
87 {
88 $clientId = ($params && \array_key_exists('client_id', $params)) ? $params['client_id'] : null;
89
90 if (null === $clientId) {
91 $clientId = $this->client->getClientId();
92 }
93 if (null === $clientId) {
94 $msg = 'No client_id provided. (HINT: set your client_id using '
95 . '`new \Stripe\StripeClient([clientId => <CLIENT-ID>
96 ])`)". You can find your client_ids '
97 . 'in your Stripe dashboard at '
98 . 'https://dashboard.stripe.com/account/applications/settings, '
99 . 'after registering your account as a platform. See '
100 . 'https://stripe.com/docs/connect/standard-accounts for details, '
101 . 'or email support@stripe.com if you have any questions.';
102
103 throw new \Stripe\Exception\AuthenticationException($msg);
104 }
105
106 return $clientId;
107 }
108
109 private function _getClientSecret($params = null)
110 {
111 if (\array_key_exists('client_secret', $params)) {
112 return $params['client_secret'];
113 }
114
115 return $this->client->getApiKey();
116 }
117
118 /**
119 * @param array|\Stripe\Util\RequestOptions $opts the special modifiers of the request
120 *
121 * @throws \Stripe\Exception\InvalidArgumentException
122 *
123 * @return \Stripe\Util\RequestOptions
124 */
125 private function _parseOpts($opts)
126 {
127 if (\is_array($opts)) {
128 if (\array_key_exists('connect_base', $opts)) {
129 // Throw an exception for the convenience of anybody migrating to
130 // \Stripe\Service\OAuthService from \Stripe\OAuth, where `connect_base`
131 // was the name of the parameter that behaves as `api_base` does here.
132 throw new \Stripe\Exception\InvalidArgumentException('Use `api_base`, not `connect_base`');
133 }
134 }
135
136 return \Stripe\Util\RequestOptions::parse($opts);
137 }
138
139 /**
140 * @param \Stripe\Util\RequestOptions $opts
141 *
142 * @return string
143 */
144 private function _getBase($opts)
145 {
146 return isset($opts->apiBase) ?
147 $opts->apiBase :
148 $this->client->getConnectBase();
149 }
150 }
151