【问题标题】:QuickBooks API Create Customer POST request FAILQuickBooks API 创建客户 POST 请求失败
【发布时间】:2018-01-16 14:57:32
【问题描述】:

我想通过 q​​uickbooks API 创建一个客户。

第一件事GET请求一切正常。

但是当我尝试 POST 请求时,我得到了

Error code="100">一般认证错误

这是 Oauth2 令牌 =>

at = OAuth2::AccessToken.new(::QB_OAUTH2_CONSUMER, acces_token)

这是新客户 =>

new_customer =

  {

   "BillAddr": {

     "Line1": "10 rue Des Champs",

     "City": "Paris",

     "Country": "FRANCE",

     "CountrySubDivisionCode": "FR",

     "PostalCode": "75020"

   },

   "Notes": "Just a test",

   "Title": "Mr",

   "GivenName": "John",

   "MiddleName": "",

   "FamilyName": "Doe",

   "Suffix": "",

   "FullyQualifiedName": "John Doe",

   "CompanyName": "DonwtownLA",

   "DisplayName": "DonwtownLA",

   "PrimaryPhone": {

     "FreeFormNumber": "0123456789"

   },

   "PrimaryEmailAddr": {

     "Address": "johndoe@gmail.com"

   }

  }

这是网址 =>

at.post("https://quickbooks.api.intuit.com/v3/company/#{realm_id}/customer")

任何人都可以帮助我,我看不出我做错了什么。

提前致谢。

【问题讨论】:

    标签: ruby-on-rails api post request quickbooks-online


    【解决方案1】:

    好的,我明白了!

    这是从 Quickbooks 控制器创建用户的代码

    def create_qb_customer
        data =
        {
          "Notes": "This is from Darta",
          "GivenName": "#{params[:first_name]}",
          "FamilyName": "#{params[:last_name]}",
          "CompanyName": "#{params[:company]}",
       "PrimaryEmailAddr": {
         "Address": "#{params[:email]}"
       }
        }
      realm_id = QbToken.last.realm_id
      url = URI("https://sandbox-quickbooks.api.intuit.com/v3/company/#{realm_id}/customer/")
      http = Net::HTTP.new(url.host, url.port)
      http.use_ssl = true
      request = Net::HTTP::Post.new(url)
      request["Content-Type"] = 'application/json'
      request["Authorization"] = "Bearer #{QbToken.last.serial}"
      request["Cache-Control"] = 'no-cache'
      request["Postman-Token"] = 'XXXXXX-cf4c-XXXXX-8d7c-XXXXXXXXX'
      request.body = data.to_json
      response = http.request(request)
      p response.read_body
      flash.notice = "Your QuickBooks customer is successfully created !"
      redirect_to list_all_project_path
      end
    

    【讨论】:

      【解决方案2】:

      请尝试使用 Postman 拨打电话。以下博客文章应该会有所帮助。 https://developer.intuit.com/hub/blog/2017/08/03/quick-start-quickbooks-online-rest-api-oauth-2-0

      请检查您是否将内容类型传递为“应用程序/json”。

      【讨论】:

      • 感谢您的回复,为什么我需要使用 Postman 呢?我像这样传递数据 => at.post(url, data) 谢谢
      • 我尝试使用 Postman 我得到了完全相同的错误 => schema.intuit.com/finance/v3 " time="2018-01-16T09:08:19.997-08:00"> General Authentication ErrorAuthenticationErrorGeneral:内部服务器错误,状态码:500
      • Postman 是 API 测试的标准工具。这就是为什么建议使用它。我看到你提出了支持票。请分享邮递员屏幕截图。
      • 您好,感谢您的回复!这是邮递员的 2 个屏幕截图,一个成功带有 GET 请求,另一个带有 POST 请求错误。 res.cloudinary.com/dgq8rxb4v/image/upload/v1516182997/…res.cloudinary.com/dgq8rxb4v/image/upload/v1516182995/…谢谢乔丹
      • 不客气。只是想知道问题是否与缺少的内容类型或其他原因有关?谢谢,玛纳斯
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 2013-02-08
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      相关资源
      最近更新 更多