Quickbooks woocommerce同步网络连接器

时间:2016-10-26 23:53:50

标签: php wordpress plugins woocommerce quickbooks

我正在使用名为Quickbooks Integration Woocommerce的插件。我有一些问题让这个正常工作。有一个更新版本的插件,但我无法购买,因为它出于某种原因缺货。

我还发现This Github repository这似乎与插件非常相似。由同一作者撰写。但是我不会撒谎。我在我脑海里。这是我第一次遇到这样的事情,我似乎无法弄明白。

所以我希望如果我发布我的错误日志,有人可以帮助指出我所需的方向,并可能为我提供一些答案。

对于那些不是洁具的人。您安装插件并生成.QWC文件。然后,您将该文件上传到Quickbooks Web Connector,它将同步您的woocommerce产品。

这是我的.QWC文件:

<?xml version="1.0"?>
<QBWCXML>
    <AppName>WooCommerce QuickBooks Connector</AppName>
    <AppID></AppID>
    <AppURL>https://my-site.com/?qbconnector=A2DRnLfb8qrU</AppURL>
    <AppDescription>QuickBooks Connector for Woocommerce.</AppDescription>
    <AppSupport>https://my-site.com/?qbconnector=support</AppSupport>
    <UserName>ply-quickbooks-connection</UserName>
    <OwnerID>{ADA96507-86F1-4FCC-B1FF-166DE1813D21}</OwnerID>
    <FileID>{ADA96507-86F1-4FCC-B1FF-966DE1813D21}</FileID>
    <QBType>QBFS</QBType>
    <Notify>false</Notify>
    <IsReadOnly>false</IsReadOnly>
</QBWCXML>

当我与Quickbooks Web Connector建立连接时,它似乎连接并进行身份验证。然后进入Say&#34; SendRequestXML失败&#34;。这是日志文件:https://jsfiddle.net/m8berLyu/。对我来说突出的是:

0161026.22:43:22 UTC    : QBWebConnector.SOAPWebService.do_sendRequestXML() : QBWC1041: SendRequestXML failed.
Error message: Response is not well-formed XML.

我不知道这意味着什么。

以下是来自服务器的错误日志:

[Wed Oct 26 23:23:23.100819 2016] [:error] [pid 10927] [client ] PHP Notice: wpdb::prepare was called <strong>incorrectly</strong>. The query argument of wpdb::prepare() must have a placeholder. Please see <a href="https://codex.wordpress.org/Debugging_in_WordPress">Debugging in WordPress</a> for more information. (This message was added in version 3.9.0.) in /nas/content/live/ply/wp-includes/functions.php on line 3996, referer: https://my-site.com/wp-admin/plugins.php?plugin_status=all&paged=1&s
[Wed Oct 26 23:23:45.015771 2016] [:error] [pid 10926] [client ] PHP Notice: unserialize(): Error at offset 65529 of 65535 bytes in /nas/content/live/ply/wp-content/plugins/woocommerce-quickbooks/QuickBooks/WebConnector/Handlers.php on line 756
[Wed Oct 26 23:35:09.153751 2016] [:error] [pid 312] [client ] PHP Notice: unserialize(): Error at offset 65532 of 65535 bytes in /nas/content/live/ply/wp-content/plugins/woocommerce-quickbooks/QuickBooks/WebConnector/Handlers.php on line 756
[Wed Oct 26 23:38:37.273773 2016] [:error] [pid 466] [client ] PHP Notice: wpdb::prepare was called <strong>incorrectly</strong>. The query argument of wpdb::prepare() must have a placeholder. Please see <a href="https://codex.wordpress.org/Debugging_in_WordPress">Debugging in WordPress</a> for more information. (This message was added in version 3.9.0.) in /nas/content/live/ply/wp-includes/functions.php on line 3996, referer: https://my-site.com/wp-admin/admin.php?page=quickbooks_setup&tab=sod_qbconnector_setup

最后是Handlers.php上第756行的代码:

    $extra = '';
                    if ($next['extra'])
                    {
//Line 756 below
                        $extra = unserialize($next['extra']);
                    }

一如既往,任何帮助都非常感谢。我对PHP并不陌生,但对于这一点,我完全是一个菜鸟。如果需要任何其他信息,请告诉我。

谢谢。

干杯,

肖恩

1 个答案:

答案 0 :(得分:1)

  

我还发现这个Github存储库看起来与插件非常相似。由同一作者撰写。

它实际上不是由同一作者写的(来源:我是作者)。

我构建了核心库。他们接受了它(它的开源,这很酷),然后写了很多自己的“胶水”代码,将QuickBooks与WooCommerce集成在一起。

  

然后继续说“SendRequestXML失败”。   错误消息:响应不是格式良好的XML。

任何时候你看到这个,都意味着PHP“粘合”代码有问题。

WooCommerce在他们的代码中做了一些不好/不正确的事情。

您是否联系过WooCommerce支持并告诉他们他们与QuickBooks的集成是否已损坏?你应该。

这:

  

[Wed Oct 26 23:35:09.153751 2016] [:error] [pid 312] [client] PHP注意:unserialize():/ nas / content / live / ply / wp中65535字节的偏移量65532处出错第756行的内容/插件/ woocommerce-quickbooks / QuickBooks / WebConnector / Handlers.php

真是个好线索! you 进行这样的调试,真是太棒了!

65535 bytes是MySQL text列的最大大小。如果你查看你的数据库,我敢打赌,WooCommerce正在构建非常大的XML文档(正是它们不应该做的事情),并试图将它们存储在MySQL中(可能在quickbooks_queue SQL表中)。

他们应该这样做。如果他们在quickbooks_queue表中存储XML,那么他们做错了。

可能能够通过将SQL quickbooks_queue.extra列更改为longtext类型来暂时解决您的问题。绕过WooCommerce的破坏实施是一个可怕的黑客攻击,但它可能会起作用/值得一试。

如果做不到这一点,您的第一步应该是与WooCommerce支持人员交谈。如果他们需要帮助,请告诉他们联系我 - 我很乐意提供帮助!我一直与人们交谈,因为他们的实施工作受到了破坏,并乐意帮助他们改进它!