Quickbooks PHP API在订单提交时生成发票

时间:2016-08-23 22:45:32

标签: php quickbooks

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

当输入订单的人不是客户端而是客户端的客户端时,如何在PHP中执行此操作?似乎Quickbooks使用Oauth令牌和javascript库来生成它们以将公司连接到应用程序,但我只是为一家公司编写后端并希望后端在保存订单时创建发票。我怎么想这个?

我对任何不得不按下按钮的人都不感兴趣,这些按钮表示"连接到quickbooks"特别是不是填写订单的人,因为再次,该人是客户,并且不需要知道客户的发票系统的内部。

我真的想使用Accounting API来生成发票。有没有办法直接在Quickbooks SDK配置中将我的后端链接到我的公司并实现这一目标,或者他们是否需要使用javascript库来获取令牌。我不清楚我应该走向何方,如果我不需要它来做后端逻辑,我不想浪费时间在客户端库。

1 个答案:

答案 0 :(得分:3)

以下是一些示例代码,可以完全满足您的需求:

快速入门指南:

另请参阅下面有关您的评论的说明 - 您走在正确的轨道上,您只是误解了OAuth的工作方式:

  

似乎Quickbooks使用Oauth令牌和javascript库来生成它们以将公司连接到应用程序,但我只是为一家公司编写后端并希望后端在保存订单时创建发票。

正确,Intuit使用OAuth和一些Javascript来启动OAuth流程。

  

我对任何不得不点击“连接到quickbooks”的按钮感兴趣

有人需要点击此按钮...但只有一个人需要点击按钮,永远,然后再次点击按钮。

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

您的客户(例如实际检出/下订单的人)请勿点击任何按钮,他们也不会看到或完全不知道您使用的是QuickBooks。

  

真的很想使用Accounting API来生成发票。

很酷,你完全可以做到!

  

是否无法直接将我的后端链接到我的公司> Quickbooks SDK配置并实现这一点,或者他们是否需要使用javascript库来获取令牌。

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

  

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

如果您使用重新连接脚本,则只需要对ONCE进行身份验证,并且可以每180天自动续订令牌,无需用户交互。

  

例如,对于realm_id,我不明白它与ouath的关系。

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

  

我想我不明白我是否正在为一个客户开发为什么我不能从他们那里获得他们的realm_id然后继续使用它而不是让他们做某种形式的身份验证?

同样,他们只需要验证ONCE。这是Intuit为您提供连接所需的领域ID和凭据的方式。一旦你完成它,你永远不需要再做一次。这需要大约30秒。

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

  

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

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

  

所以我可以在它到期之前将令牌和realm_id存储在数据库中并使用它吗?

  

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

是!