実際には正しく動作しない Intuit のリリースされていないコードを使用しています。使用しているコードは壊れています。
それを使用する代わりに、GitHub で入手できるQuickBooks PHP DevKitを使用してください。オープンソースで十分にサポートされており、OAuth と v3 で正常に動作します。
QuickBooks PHP IPP v3 クイック スタート ガイドに従って作業を開始できます。上記と同様のプロセスを経て、構成内の独自の OAuth トークン/シークレットとアプリ トークンを見つけ、QuickBooks に接続できるようになります。
そこから、いくつかのサンプル スクリプトを見つけることができます。顧客を追加するためのコードは、最終的に次のようになります (GitHub リポジトリの例: https://github.com/consolibyte/quickbooks-php/blob/master/docs/example_app_ipp_v3 /example_customer_add.php ):
<?php
// Set up the IPP instance
$IPP = new QuickBooks_IPP($dsn);
// Get our OAuth credentials from the database
$creds = $IntuitAnywhere->load($the_username, $the_tenant);
// Tell the framework to load some data from the OAuth store
$IPP->authMode(
QuickBooks_IPP::AUTHMODE_OAUTH,
$the_username,
$creds);
// Print the credentials we're using
//print_r($creds);
// This is our current realm
$realm = $creds['qb_realm'];
// Load the OAuth information from the database
if ($Context = $IPP->context())
{
// Set the IPP version to v3
$IPP->version(QuickBooks_IPP_IDS::VERSION_3);
$CustomerService = new QuickBooks_IPP_Service_Customer();
$Customer = new QuickBooks_IPP_Object_Customer();
$Customer->setTitle('Mr');
$Customer->setGivenName('Keith');
$Customer->setMiddleName('R');
$Customer->setFamilyName('Palmer');
$Customer->setDisplayName('Keith R Palmer Jr ' . mt_rand(0, 1000));
if ($resp = $CustomerService->add($Context, $realm, $Customer))
{
print('Our new customer ID is: [' . $resp . ']');
}
else
{
print($CustomerService->lastError($Context));
}
/*
print('<br><br><br><br>');
print("\n\n\n\n\n\n\n\n");
print('Request [' . $IPP->lastRequest() . ']');
print("\n\n\n\n");
print('Response [' . $IPP->lastResponse() . ']');
print("\n\n\n\n\n\n\n\n\n");
*/
}
else
{
die('Unable to load a context...?');
}
?>