25 require
'../../../main.inc.php';
26 require_once DOL_DOCUMENT_ROOT.
'/includes/OAuth/bootstrap.php';
27 use OAuth\Common\Storage\DoliStorage;
28 use OAuth\Common\Consumer\Credentials;
29 use OAuth\OAuth2\Service\GitHub;
32 $urlwithouturlroot = preg_replace(
'/'.preg_quote(DOL_URL_ROOT,
'/').
'$/i',
'', trim($dolibarr_main_url_root));
33 $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT;
37 $action =
GETPOST(
'action',
'aZ09');
38 $backtourl =
GETPOST(
'backtourl',
'alpha');
39 $keyforprovider =
GETPOST(
'keyforprovider',
'aZ09');
40 if (empty($keyforprovider) && !empty($_SESSION[
"oauthkeyforproviderbeforeoauthjump"]) && (
GETPOST(
'code') || $action ==
'delete')) {
41 $keyforprovider = $_SESSION[
"oauthkeyforproviderbeforeoauthjump"];
51 $currentUri =
$uriFactory->createFromAbsolute($urlwithroot.
'/core/modules/oauth/stripelive_oauthcallback.php');
59 $serviceFactory = new \OAuth\ServiceFactory();
60 $httpClient = new \OAuth\Common\Http\Client\CurlClient();
64 $serviceFactory->setHttpClient($httpClient);
67 $storage =
new DoliStorage($db, $conf);
70 $keyforparamid =
'OAUTH_STRIPE_LIVE'.($keyforprovider ?
'-'.$keyforprovider :
'').
'_ID';
71 $keyforparamsecret =
'OAUTH_STRIPE_LIVE'.($keyforprovider ?
'-'.$keyforprovider :
'').
'_SECRET';
72 $credentials =
new Credentials(
75 $currentUri->getAbsoluteUri()
78 $requestedpermissionsarray = array();
80 $requestedpermissionsarray = explode(
',',
GETPOST(
'state'));
92 $servicesuffix = ($keyforprovider ?
'-'.$keyforprovider :
'');
93 $sql =
"INSERT INTO ".MAIN_DB_PREFIX.
"oauth_token SET service = 'StripeLive".$db->escape($servicesuffix).
"', entity = ".((int) $conf->entity);
99 $langs->load(
"oauth");
102 accessforbidden(
'Setup of service is not complete. Customer ID is missing');
105 accessforbidden(
'Setup of service is not complete. Secret key is missing');
114 if ($action ==
'delete') {
115 $storage->clearToken(
'StripeLive');
119 header(
'Location: '.$backtourl);
123 if (!empty($_GET[
'code'])) {
127 dol_syslog(
"We are coming from the oauth provider page");
135 $state = isset($_GET[
'state']) ? $_GET[
'state'] :
null;
145 $token = $apiService->requestAccessToken($_GET[
'code']);
153 $backtourl = $_SESSION[
"backtourlsavedbeforeoauthjump"];
154 unset($_SESSION[
"backtourlsavedbeforeoauthjump"]);
156 header(
'Location: '.$backtourl);
159 print $e->getMessage();
163 $_SESSION[
"backtourlsavedbeforeoauthjump"] = $backtourl;
164 $_SESSION[
"oauthkeyforproviderbeforeoauthjump"] = $keyforprovider;
165 $_SESSION[
'oauthstateanticsrf'] = $state;
170 $url = $apiService->getAuthorizationUri(array(
'state'=>
GETPOST(
'state')));
174 $url =
'https://connect.stripe.com/oauth/authorize?response_type=code&client_id='.$conf->global->$keyforparamid.
'&scope=read_write';
178 header(
'Location: '.$url);