2016-08-23 48 views
1

我有一个客户希望通过在线表单接受订单,其想法是通过我的应用程序可以提交订单并将其存储在数据库中,同时在提交时生成发票在QuickBooks中。Quickbooks PHP API在订单提交中生成发票

如何在PHP中输入订单的人不是客户,而是客户的客户?看起来像Quickbooks使用Oauth标记和一个JavaScript库来生成它们以将公司连接到应用程序,但我只是为一家公司编写后端,并希望后端在保存订单时创建发票。我如何看待这个问题?

我对任何人都不需要点击“连接到快速书”的按钮,特别是不填写订单的人,因为再次,该人是客户,不需要知道内部的客户的发票系统。

我只是真的想用会计API来生成发票。是否没有办法在Quickbooks SDK配置中直接将我的后端链接到我的公司,并实现此目的,还是需要使用JavaScript库来获取令牌?我不清楚我应该进入什么方向,如果我不需要它来做后端逻辑,不想浪费时间与客户端库。

+1

查看Keith Palmers库:https://github.com/consolibyte/quickbooks-php, 使用可用的几个库之一来获取您的令牌。您只需要每180天验证一次btw。 – Kisaragi

+0

@Kisaragi是否有任何可用的Quickbooks PHP SDK?尽管我可能不得不使用该库作为官方发布的麻烦。 –

+1

我不确定你的意思。你遇到什么麻烦?你不必让你的客户连接到快速书,你只需要一次(建立一个一次性的方法,例如自己运行它)。一旦您的应用程序进行身份验证,只要通过您的应用程序,谁创建发票并不重要。如果您熟悉codeigniter并希望了解oauth过程如何在没有QBO .js文件的情况下工作,您可以在这里查看https://github.com/Scott972/Ci_quickbooks_online/blob/master/application/libraries/Quickbooks/ quickbooks.php – Kisaragi

回答

3

这里有你要找的究竟是干什么的一些示例代码:

随着一个快速入门指南:

另外se下面关于您的意见è笔记 - 你在正确的轨道上,你只是误解的OAuth如何工作的:

它看起来像QuickBooks的使用OAuth令牌和一个JavaScript库生成它们到公司连接一个应用程序,但我只是为一家公司编写后端,并希望后端在保存订单时创建发票。

正确,Intuit使用OAuth和一些Javascript的东西来启动OAuth进程。

我没有兴趣在打一个按钮,上面写着“连接到QuickBooks的”

需要有人打这个按钮的人......但只有一个人需要一度创出按钮,永远,然后永远不再。

公司的所有者(例如您的老板)需要点击按钮ONCE,这会为您提供OAuth信用(和领域ID)。一旦你的老板完成了这一切,那么你就拥有了所有实际客户永远使用的信用。

您的客户(例如,实际签出/下订单的人)不要点击任何按钮,也不会看到甚至不知道您甚至使用QuickBooks。

只是真的想使用会计API来生成发票。

很酷,你完全可以做到这一点!

有没有办法简单地将我的后端链接到我的公司,直接在Quickbooks SDK配置中实现此目的,还是需要使用JavaScript库来获取令牌。

按照上面的快速入门。应用大约15分钟才能获得可用的OAuth连接,然后再也不需要再使用客户端的东西。

您只需要每180天验证一次btw。

如果您使用重新连接脚本,则只需要认证一次,并且可以每180天自动更新一次令牌,不需要用户交互。

与realm_id例如

好了,我不知道如何,涉及到ouath。

领域ID只是您尝试连接的特定QuickBooks Online公司的唯一标识符。是的,你需要存储它。如果你使用我们的库,这是自动完成的。

我想,如果我开发了一个客户为什么我不能只是从他们那里得到他们的realm_id,然后继续使用它,而不是让他们做一些形式的认证,我不明白?

再次,他们只需要认证一次。这是Intuit向您提供连接所需的领域ID和证书的方式。一旦你完成了一次,你永远不需要再做一次。它需要大约30秒。

如果他们只是给你OAuth信誉没有任何身份验证,这将是一个巨大的安全漏洞。如果您阅读关于OAuth的维基百科文章,它会深入讨论这一点以及OAuth的目标。

好吧我想我明白了,所以他们必须每180天进行一次验证?

每180天一次,除非您使用重新连接脚本,在这种情况下,他们只需进行一次认证,然后再也不必担心。

因此,我可以将令牌和realm_id存储在数据库中,然后才能使用它?

是的。

通过这种方式,我的客户可以进行身份​​验证,然后我的脚本可以在他们的客户访问我们的网站时为他们生成发票?

是的!