Как подключиться к PHP QucckBooks, используя консолибайт API - PullRequest
1 голос
/ 27 января 2020

Я пытаюсь интегрировать свою учетную систему QuickBooks в мое PHP веб-приложение.

Интеграция работала хорошо, пока я не решил использовать токены OAuth 2 для соединения PHP с Quickbooks онлайн.

Я искал ресурсы [здесь] [1] и смотрел на следующие шаги.

  1. Сделайте резервную копию вашего кода
  2. Сделайте резервную копию ваших существующих токенов OAuth v1.0
  3. git, клонируйте хранилище и получите новый код
  4. Внесите изменения в код, как описано ниже
  5. Go получите свой идентификатор клиента и Client Secret от developer.intuit.com для своего приложения

Итак Я сделал резервные копии и клонировал репозиторий, чтобы получить новый код.

Я извлек новый репозиторий и загрузил код на свой сервер.

Я вошел на developer.intuit.com и получил мой 'Productions tokens'. Итак, у меня есть 'Client ID' и 'Client Secret'.

Следующее, что я сделал, это открыл файл config_oauthv2.php, и я скопировал и вставил Client ID и Client Secret.

$oauth_client_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
$oauth_client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxx;

Песочница установлена ​​на false, поскольку я использую токены продукции.

$sandbox = false;    // When you're using production tokens

Затем я изменил URL-адрес обработчика Oauth, переадресации и меню на правильные страницы.

// This is the URL of your OAuth auth handler page
$quickbooks_oauth_url = 'https://xxxxxxxxxx/quickbooks-php-master/docs/partner_platform/example_app_ipp_v3/oauth.php';

// This is the URL to forward the user to after they have connected to IPP/IDS via OAuth
$quickbooks_success_url = 'https://xxxxxxxxxx/quickbooks-php-master/docs/partner_platform/example_app_ipp_v3/success.php';

// This is the menu URL script
$quickbooks_menu_url = 'https://xxxxxxxxxx/quickbooks-php-master/docs/partner_platform/example_app_ipp_v3/menu.php';

Затем я обновил $dsn с подключением к базе данных.

$dsn = 'mysqli://xxxxxxxxxx@xxxxxxx/xxxxxxx';

Я не сделал никаких дальнейших изменений, поэтому остальная часть кода такая же, как в хранилище.

// You should set this to an encryption key specific to your app
$encryption_key = 'bcde1234';

// Scope required
$scope = 'com.intuit.quickbooks.accounting ';

// The tenant that user is accessing within your own app
$the_tenant = 12345;

Когда я перешел на индекс . php URL. На экране появилась следующая страница.

[! [Index page] [2]] [2]

Поэтому я нажал «Подключиться к QuickBooks» (я надеялся, что он попросит меня войти в QuickBooks), но он отображал текущую страницу.

[! [Изображение ошибки] [3]] [3]

Пожалуйста, не могли бы вы помочь мне разобраться, почему я не могу подключиться к Quickbooks?

Похоже, что при переходе на oauth.php происходит сбой и возвращается

не удалось создать авторизацию. О, ничего плохого не случилось`.

Мой код страницы oauth.php совпадает с тем, что я клонировал из репозитория.

РЕДАКТИРОВАТЬ ответ

Trying to hit URL: https://developer.api.intuit.com/.well-known/openid_sandbox_configuration

   Did we disable SSL checks? false
<br />
<b>Warning</b>:  curl_setopt(): cannot represent a stream of type Output as a STDIO FILE* in <b>C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\qbapi\quickbooks-php-master\docs\partner_platform\example_app_ipp_v3\troubleshooting.php</b> on line <b>30</b><br />









Trying to hit URL: https://developer.api.intuit.com/.well-known/openid_configuration

   Did we disable SSL checks? false
<br />
<b>Warning</b>:  curl_setopt(): cannot represent a stream of type Output as a STDIO FILE* in <b>C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\qbapi\quickbooks-php-master\docs\partner_platform\example_app_ipp_v3\troubleshooting.php</b> on line <b>30</b><br />









Trying to hit URL: https://developer.api.intuit.com/.well-known/openid_sandbox_configuration

   Did we disable SSL checks? true
<br />
<b>Warning</b>:  curl_setopt(): cannot represent a stream of type Output as a STDIO FILE* in <b>C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\qbapi\quickbooks-php-master\docs\partner_platform\example_app_ipp_v3\troubleshooting.php</b> on line <b>30</b><br />



{  
   "issuer":"https://oauth.platform.intuit.com/op/v1",
   "authorization_endpoint":"https://appcenter.intuit.com/connect/oauth2",
   "token_endpoint":"https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer",
   "userinfo_endpoint":"https://sandbox-accounts.platform.intuit.com/v1/openid_connect/userinfo",
   "revocation_endpoint":"https://developer.api.intuit.com/v2/oauth2/tokens/revoke",
   "jwks_uri":"https://oauth.platform.intuit.com/op/v1/jwks",
   "response_types_supported":[  
      "code"
   ],
   "subject_types_supported":[  
      "public"
   ],
   "id_token_signing_alg_values_supported":[  
      "RS256"
   ],
   "scopes_supported":[  
      "openid",
      "email",
      "profile",
      "address",
      "phone"
   ],
   "token_endpoint_auth_methods_supported":[  
      "client_secret_post",
      "client_secret_basic"
   ],
   "claims_supported":[  
      "aud",
      "exp",
      "iat",
      "iss",
      "realmid",
      "sub"
   ]
}







Trying to hit URL: https://developer.api.intuit.com/.well-known/openid_configuration

   Did we disable SSL checks? true
<br />
<b>Warning</b>:  curl_setopt(): cannot represent a stream of type Output as a STDIO FILE* in <b>C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\qbapi\quickbooks-php-master\docs\partner_platform\example_app_ipp_v3\troubleshooting.php</b> on line <b>30</b><br />



{  
   "issuer":"https://oauth.platform.intuit.com/op/v1",
   "authorization_endpoint":"https://appcenter.intuit.com/connect/oauth2",
   "token_endpoint":"https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer",
   "userinfo_endpoint":"https://accounts.platform.intuit.com/v1/openid_connect/userinfo",
   "revocation_endpoint":"https://developer.api.intuit.com/v2/oauth2/tokens/revoke",
   "jwks_uri":"https://oauth.platform.intuit.com/op/v1/jwks",
   "response_types_supported":[  
      "code"
   ],
   "subject_types_supported":[  
      "public"
   ],
   "id_token_signing_alg_values_supported":[  
      "RS256"
   ],
   "scopes_supported":[  
      "openid",
      "email",
      "profile",
      "address",
      "phone"
   ],
   "token_endpoint_auth_methods_supported":[  
      "client_secret_post",
      "client_secret_basic"
   ],
   "claims_supported":[  
      "aud",
      "exp",
      "iat",
      "iss",
      "realmid",
      "sub"
   ]
}







php version: 7.0.30
mcrypt extension? true
  mcrypt module rijndael-256? NULL
curl extension? true
...