PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.4
Booking for Appointments and Events Calendar – Amelia v2.4.4
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / stripe / stripe-php / lib / Service / OAuthService.php
ameliabooking / vendor / stripe / stripe-php / lib / Service Last commit date
Apps 6 months ago Billing 6 months ago BillingPortal 6 months ago Checkout 6 months ago Climate 6 months ago Entitlements 6 months ago FinancialConnections 6 months ago Forwarding 6 months ago Identity 6 months ago Issuing 6 months ago Radar 6 months ago Reporting 6 months ago Sigma 6 months ago Tax 6 months ago Terminal 6 months ago TestHelpers 6 months ago Treasury 6 months ago V2 6 months ago AbstractService.php 6 months ago AbstractServiceFactory.php 6 months ago AccountLinkService.php 6 months ago AccountService.php 6 months ago AccountSessionService.php 6 months ago ApplePayDomainService.php 6 months ago ApplicationFeeService.php 6 months ago BalanceService.php 6 months ago BalanceTransactionService.php 6 months ago ChargeService.php 6 months ago ConfirmationTokenService.php 6 months ago CoreServiceFactory.php 6 months ago CountrySpecService.php 6 months ago CouponService.php 6 months ago CreditNoteService.php 6 months ago CustomerService.php 6 months ago CustomerSessionService.php 6 months ago DisputeService.php 6 months ago EphemeralKeyService.php 6 months ago EventService.php 6 months ago ExchangeRateService.php 6 months ago FileLinkService.php 6 months ago FileService.php 6 months ago InvoiceItemService.php 6 months ago InvoicePaymentService.php 6 months ago InvoiceRenderingTemplateService.php 6 months ago InvoiceService.php 6 months ago MandateService.php 6 months ago OAuthService.php 6 months ago PaymentIntentService.php 6 months ago PaymentLinkService.php 6 months ago PaymentMethodConfigurationService.php 6 months ago PaymentMethodDomainService.php 6 months ago PaymentMethodService.php 6 months ago PayoutService.php 6 months ago PlanService.php 6 months ago PriceService.php 6 months ago ProductService.php 6 months ago PromotionCodeService.php 6 months ago QuoteService.php 6 months ago RefundService.php 6 months ago ReviewService.php 6 months ago ServiceNavigatorTrait.php 6 months ago SetupAttemptService.php 6 months ago SetupIntentService.php 6 months ago ShippingRateService.php 6 months ago SourceService.php 6 months ago SubscriptionItemService.php 6 months ago SubscriptionScheduleService.php 6 months ago SubscriptionService.php 6 months ago TaxCodeService.php 6 months ago TaxIdService.php 6 months ago TaxRateService.php 6 months ago TokenService.php 6 months ago TopupService.php 6 months ago TransferService.php 6 months ago WebhookEndpointService.php 6 months ago
OAuthService.php
151 lines
1 <?php
2
3 namespace AmeliaVendor\Stripe\Service;
4
5 class OAuthService extends AbstractService
6 {
7 /**
8 * Sends a request to Stripe's Connect API.
9 *
10 * @param 'delete'|'get'|'post' $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|\AmeliaVendor\Stripe\Util\RequestOptions $opts the special modifiers of the request
14 *
15 * @return \AmeliaVendor\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 = \AmeliaVendor\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 * @return \AmeliaVendor\Stripe\StripeObject object containing the response from the API
57 *
58 * @throws \AmeliaVendor\Stripe\Exception\OAuth\OAuthErrorException if the request fails
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 * @return \AmeliaVendor\Stripe\StripeObject object containing the response from the API
75 *
76 * @throws \AmeliaVendor\Stripe\Exception\OAuth\OAuthErrorException if the request fails
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 \AmeliaVendor\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 \AmeliaVendor\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|\AmeliaVendor\Stripe\Util\RequestOptions $opts the special modifiers of the request
120 *
121 * @return \AmeliaVendor\Stripe\Util\RequestOptions
122 *
123 * @throws \AmeliaVendor\Stripe\Exception\InvalidArgumentException
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 \AmeliaVendor\Stripe\Exception\InvalidArgumentException('Use `api_base`, not `connect_base`');
133 }
134 }
135
136 return \AmeliaVendor\Stripe\Util\RequestOptions::parse($opts);
137 }
138
139 /**
140 * @param \AmeliaVendor\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