public static function processAuthenticationCode($code, $options = [])
 {
     $repository = new TokenRepository();
     $base_uri = 'https://' . SalesforceConfig::get('salesforce.api.domain') . SalesforceConfig::get('salesforce.api.base_uri');
     $oauth2Client = new Oauth2Client(array_replace(['base_uri' => $base_uri], $options));
     $authorization_config = ['code' => $code, 'client_id' => SalesforceConfig::get('salesforce.oauth.consumer_token'), 'client_secret' => SalesforceConfig::get('salesforce.oauth.consumer_secret'), 'redirect_uri' => SalesforceConfig::get('salesforce.oauth.callback_url'), 'token_url' => 'https://' . SalesforceConfig::get('salesforce.oauth.domain') . SalesforceConfig::get('salesforce.oauth.token_uri'), 'auth_location' => 'body'];
     $oauth2Client->setGrantType(new AuthorizationCode($authorization_config));
     $refresh_token = '';
     if ($refresh_token) {
         $refresh_config = ['refresh_token' => $refresh_token, 'client_id' => SalesforceConfig::get('salesforce.oauth.consumer_token'), 'client_secret' => SalesforceConfig::get('salesforce.oauth.consumer_secret')];
         $oauth2Client->setRefreshTokenGrantType(new RefreshToken($refresh_config));
     }
     $access_token = $oauth2Client->getAccessToken();
     $repository->store->setTokenRecord($access_token);
     return 'Token record set successfully';
 }
 public function __construct($config = [])
 {
     if (!isset($config['handler'])) {
         $config['handler'] = $this->returnHandlers();
     }
     parent::__construct($config);
 }