【问题标题】:Create record example for Quickbooks Online and Intuit Anywhere using Ruby and httparty?使用 Ruby 和 httparty 为 Quickbooks Online 和 Intuit Anywhere 创建记录示例?
【发布时间】:2012-02-07 20:26:33
【问题描述】:

有人可以发布一个使用 ruby​​ 和 httparty 在任何地方的 quickbooks/intuit 中创建记录的示例吗?

我正在使用 intuit 在任何地方集成到 ruby​​ on rails 应用程序,并且在尝试创建新记录时遇到了我的 POST 请求的问题。我已经能够使用 POST 命令成功检索数据(客户),该命令不需要请求正文中的 XML 数据,但是在尝试创建具有需要传入的必填字段的新记录时遇到了麻烦请求正文中的 XML。

我在尝试为其创建记录的任何实体中都会遇到相同的错误:无效或缺少必填字段。在我看来,正文中的 XML(添加了必填字段的数据)要么被忽略(格式不正确?)要么没有被附加。

我希望其他熟悉 ruby​​ 的人可以发布一个使用 httparty 创建记录的示例。如果我能看到如何使用 httparty 正确传递 XML,我可以自己解决我的问题。

我一直在使用 customer.com 示例 (https://code.intuit.com/integration/viewvc/viewvc.cgi/IntuitAnywhere-Ruby/customer.com/?root=intuitanywhere&system=exsy1003),大部分情况与发布的一样,需要进行一些不相关的修改才能使其在 Rails 3.1 中工作。我正在使用示例中提供的数据拉取和处理,它看起来像一个使用 httparty 构建的非常标准的 API 包装器。

我正在使用类似于 company_controller 客户方法中的拉动。以下是我尝试提交 XML 的两种不同方式:

#########################################
#Example 1 - XML

e = @company.intuit_token.post("https://qbo.intuit.com/qbo1/resource/account/v2/#{@company.realm}",
    { :body => 
        "<Account xmlns:ns2=\"http://www.intuit.com/sb/cdm/qbo\" xmlns=\"http://www.intuit.com/sb/cdm/v2\">
            <Name>Test Account 2</Name>
            <Desc>Test Account</Desc>
            <Subtype>Savings</Subtype>
            <AcctNum>5001</AcctNum>
            <OpeningBalanceDate>2010-05-14</OpeningBalanceDate>
        </Account>",
    :headers => {
        "Content-Type" => "application/xml"
    }}
)

#########################################
#Example 2 - hash

e = @company.intuit_token.post("https://qbo.intuit.com/qbo1/resource/account/v2/#{@company.realm}",
    { :body => { 
        :Account => {
            :Name => "Loan Account 2",
            :Desc  => "Loac Account 2",
            :Subtype     => "Savings",
            :AcctNum    => "5001",
            :OpeningBalanceDate    => "2011-04-22"
        }
    },
    :headers => {
        "Content-Type" => "application/xml"
    }}
)

【问题讨论】:

    标签: ruby-on-rails oauth httparty intuit quickbooks-online


    【解决方案1】:

    我错误地认为 intuit 提供的 customer.com 示例使用 httparty gem 进行 POST 调用,因此我使用了错误的语法。他们实际上是在使用 OAuth gem 的 POST 调用,其语法可以在这里找到:http://oauth.rubyforge.org/rdoc/classes/OAuth/AccessToken.html

    我还必须修改标头以使 Intuit Anywhere 服务接受 XML 正文。以下是最终帮助我在任何地方使用 intuit 在 quickbooks 中创建记录的代码:

        e = @company.intuit_token.post("https://qbo.intuit.com/qbo1/resource/account/v2/#{@company.realm}", "<Account xmlns:ns2=\"http://www.intuit.com/sb/cdm/qbo\" xmlns=\"http://www.intuit.com/sb/cdm/v2\"><Name>Test Account </Name><Desc>Test Account</Desc><Subtype>Savings</Subtype><AcctNum>5002</AcctNum><OpeningBalanceDate>2010-05-14</OpeningBalanceDate></Account>", {"Content-Type" => "application/xml", "standalone" => "yes", "encoding" => "UTF-8"})
    

    【讨论】:

    • 您能在此处发布代码以使用 XML 或 JSON 使用带有 ruby​​onrails 的帖子创建令牌和创建发票 api 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多