Я пытаюсь интегрировать свою учетную систему QuickBooks в мое PHP веб-приложение.
Интеграция работала хорошо, пока я не решил использовать токены OAuth 2 для соединения PHP с Quickbooks онлайн.
Я искал ресурсы [здесь] [1] и смотрел на следующие шаги.
- Сделайте резервную копию вашего кода
- Сделайте резервную копию ваших существующих токенов OAuth v1.0
- git, клонируйте хранилище и получите новый код
- Внесите изменения в код, как описано ниже
- 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