PHP 到 Quickbooks - 如果她在桌面上运行,我如何连接两者?

标签 php e-commerce quickbooks

我的任务是为一家小型本地企业提出电子商务解决方案。我的客户使用 Intuit/Quickbooks 销售点软件。我刚刚发现 Intuit 有一系列允许互操作性的 PHP 5+ 类(其他可能偶然发现此问题的链接:https://code.intuit.com/sf/sfmain/do/viewProject/projects.php_devkit)。

该网站将托管在共享主机上,因此这两个系统完全分开。她的桌面确实可以访问互联网。

所以,我的问题:

  1. 有没有办法让我通过 curl 连接到她的桌面?
  2. 如果是这样,如果我不能在我的主机上创建 VPN,我有没有办法安全地做到这一点?
  3. 现在我想起来了,有没有我可以使用的 VPN 服务?
  4. 还有其他我应该注意的安全事项吗?

支付处理将通过 Stripe ( http://www.stripe.com ) 处理。这实际上只是为了库存/订单同步。

最佳答案

最好的选择是 QuickBooks Web 连接器,以及您提到的那组 PHP 类。请参阅下面我的具体评论:

I've just discovered that Intuit has a series of PHP 5+ classes that allow interoperability (link for anyone else that may stumble on this: https://code.intuit.com/sf/sfmain/do/viewProject/projects.php_devkit).

值得注意的是,该库并非由 Intuit 开发(免责声明 - 我是该库的开发者)。 Intuit 托管我们的 Subversion 存储库,但我们是一家独立的公司,Intuit 不参与实际的 PHP 代码。 Intuit 仅提供基于 Windows COM 的 API,我们提供实际的 PHP 组件,因此您可以通过 Web 连接器从远程服务器与 QuickBooks 对话,而无需处理 COM。

我们有大量关于 QuickBooks integration wiki 的信息这可能会有帮助 - 特别是 QuickBooks integration with PHP section还有这个overview of the QuickBooks Web Connector .

考虑从您发布的链接获取最新的夜间构建,并查看此文件: * 文档/example_web_connector_point_of_sale.php

它说明了 PHP 和 QuickBooks 销售点之间的数据交换。

The website will be hosted on shared hosting, so the two systems are split quite literally. Her desktop does have internet access.

这个^^^就好了,典型的场景。这正是 Web 连接器的设计目的。 Web 连接器本质上充当 PHP SOAP 服务和 QuickBooks 本身之间的“哑代理”——它通过 HTTP(S) 将消息从您的 PHP 应用中继到 QuickBooks。

Is there a way for me to connect to her desktop via curl?

Curl 不行,不行(虽然你可以造一个……但为什么要重新发明轮子?)。 Web 连接器是基于 SOAP 的,但是您的 PHP 组件将是 SOAP 服务器的一半,而不是 SOAP 客户端的一半。

If so, is there a way for me to do it securely if I can't create a VPN on my host?

Web 连接器可以通过 HTTPS 使用 SSL 来保证数据在通过网络传输时的安全。

Now that I think about it, is there a VPN service I could use?

只需购买SSL证书,更简单。 :-)

Any other security things I should be aware of?

不超出您可以在 Stackoverflow 的其他地方找到的典型 Web 应用程序安全指南。

If you're going to sync to a system like Quickbooks, don't do it real-time, do it in a batch process that is resilient to things like her desktop being turned off, the crappy office internet (compared to a datacenter) being slow or down, etc.

这个 ^^^ 是很好的建议,并且正是 Web 连接器的工作原理。

If you need real-time, Quickbooks running on a desktop is NOT the way to go.

事实上,如果您需要实时,QuickBooks period 不是最佳选择。 QuickBooks 是一款出色的中小型企业会计软件……但速度较慢且不够可靠,无法实现一致的实时通信。话虽如此……您所说的不需要实时通信,所以这不应该打扰您。

Batching the orders isn't a problem, but how would I make even a batch process resilient?

PHP 代码使用带有状态的队列,因此您可以跟踪哪些已处理,哪些未处理,以及您从 QuickBooks 返回的响应(“添加客户成功!”与“糟糕,添加失败”添加客户,因为...”)、QuickBooks 抛出的错误消息等,然后对您的代码做出适当的 react ,或手动使用react。

您不需要 cron - Web 连接器可以安排运行,它会将所有错误和大量其他信息转发给您,以便您可以处理错误、发出警告、构建报告以显示向人们讲述失败/成功的事情等。

关于PHP 到 Quickbooks - 如果她在桌面上运行,我如何连接两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809721/

相关文章:

php - SQL:无法选择数据库

php - 多图上传文件上传数量错误

java - 如何将多个动画 GIF 组合成一个 GIF 网格

javascript - 如何将自定义 html 邮件放入默认的 opencart 邮件中?

c# - 将 asp.net 应用程序与 quickbooks 桌面版集成

php - 列出给定标签的所有建议字段

javascript - JS Analytics 电子商务回调

magento - Magento 的 Google 电子商务跟踪

quickbooks - 为 QuickBooks 在线开发和 QA 测试创建测试公司帐户

java - 无法验证 Quickbook API