consolibyte:QuickBook 与 MySql 数据库的双向同步无法正常工作

consolibyte : QuickBook two way syncing with MySql database is not working

我正在尝试使用 consolibyte 库实现与 quickbook 的两种同步方式。我使用了 consolibyte 示例文件 "example_mysql_mirror.php"。它创建了大约 139 个表并成功地从 Quickbook 导入数据。

当我在 Quickbook 和 MySql 数据库中进行一些更改时,Quickbook 更改会反映在 MySql 数据库中,但 MySql 数据库更改不会出现在 Quickbook 中。

我正在使用 QuickBook enterprise 2018 和 consolibyte stable build 2.0.0。 以下是 "example_mysql_mirror.php" 文件的内容。

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
require_once dirname(__FILE__) . '/../QuickBooks.php';

if (function_exists('date_default_timezone_set'))
{
    date_default_timezone_set('America/New_York');
}

$username = 'Admin';
$password = '123456';

$dsn = 'mysqli://root:@localhost/quickbooks_sql';

if (!QuickBooks_Utilities::initialized($dsn))
{
    header('Content-Type: text/plain');

    set_time_limit(0);

    $driver_options = array(
        );

    $init_options = array(
        'quickbooks_sql_enabled' => true, 
        );

    QuickBooks_Utilities::initialize($dsn, $driver_options, $init_options);
    QuickBooks_Utilities::createUser($dsn, $username, $password);

    exit;
}
$mode = QuickBooks_WebConnector_Server_SQL::MODE_READWRITE;

$conflicts = QuickBooks_WebConnector_Server_SQL::CONFLICT_LOG;

$delete = QuickBooks_WebConnector_Server_SQL::DELETE_FLAG;

$hooks = array();

$soap_options = array();

$handler_options = array(
    'deny_concurrent_logins' => false,
    );

$driver_options = array();

$ops = array(
    QUICKBOOKS_OBJECT_SALESTAXITEM,
    QUICKBOOKS_OBJECT_SALESTAXCODE,
    QUICKBOOKS_OBJECT_CUSTOMER, 
    QUICKBOOKS_OBJECT_VENDOR,

    QUICKBOOKS_OBJECT_INVENTORYITEM, 

    QUICKBOOKS_OBJECT_TEMPLATE, 

    QUICKBOOKS_OBJECT_CUSTOMERTYPE, 
    QUICKBOOKS_OBJECT_VENDORTYPE, 
    QUICKBOOKS_OBJECT_ESTIMATE, 
    QUICKBOOKS_OBJECT_INVOICE, 
    QUICKBOOKS_OBJECT_CLASS, 

    QUICKBOOKS_OBJECT_INVOICE,

    QUICKBOOKS_OBJECT_PAYMENTMETHOD,

    QUICKBOOKS_OBJECT_COMPANY, 
    QUICKBOOKS_OBJECT_HOST, 
    QUICKBOOKS_OBJECT_PREFERENCES,
    );

$ops_misc = array(
    QUICKBOOKS_DERIVE_INVENTORYLEVELS,
    QUICKBOOKS_QUERY_DELETEDLISTS,
    QUICKBOOKS_QUERY_DELETEDTRANSACTIONS,
    // 'nothing', 
    );

$sql_options = array(
    'only_import' => $ops,
    'only_add' => $ops, 
    'only_modify' => $ops, 
    'only_misc' => $ops_misc, 
    );

$callback_options = array();

$Server = new QuickBooks_WebConnector_Server_SQL(
    $dsn, 
    '1 minute', 
    $mode, 
    $conflicts, 
    $delete,
    $username, 
    array(), 
    array(), 
    $hooks, 
    QUICKBOOKS_LOG_DEVELOP, 
    QUICKBOOKS_SOAPSERVER_BUILTIN, 
    QUICKBOOKS_WSDL,
    $soap_options, 
    $handler_options, 
    $driver_options,
    $sql_options, 
    $callback_options);
$Server->handle(true, true);

如果你的QuickBooks电脑在这个时区?

if (function_exists('date_default_timezone_set'))
{
    date_default_timezone_set('America/New_York');
}

如果不是,请修正您的代码,使该代码的时区与 QuickBooks 的时区相匹配。