【问题标题】:How to sign a quickbooks online API request in ColdFusion 9?如何在 ColdFusion 9 中签署快速手册在线 API 请求?
【发布时间】:2014-03-16 15:38:00
【问题描述】:

在我的 CF 应用程序中,我使用 CF OAuth code at riaforge 从 QuickBooks Online 获取请求令牌和访问令牌,它工作正常。 在我尝试通过开始构建调用的 http 标头来进行 QBO API 调用之后(我按照此处“HTTP 授权标头”部分的说明进行操作:Implement OAuth in Your App)。然后根据 riaforge 的代码方法构建 http 标头,因为它有效。另外,我已经尊重了 Intuit 在上一个链接中给出的参数顺序)。

当我启动 API 调用时,我收到了响应:“signature_invalid”

如果我已经准备好 6 个标头参数,我真的想知道如何使用 CF 9 签署 QBO 在线 API 调用:

  • oauth_token
  • oauth_nonce
  • oauth_consumer_key
  • oauth_signature_method
  • oauth_timestamp
  • oauth_version

(但如果可能的话,工作代码会更好)

提前感谢您的时间和帮助

【问题讨论】:

    标签: oauth coldfusion http-headers coldfusion-9 quickbooks-online


    【解决方案1】:

    这是我用于生成请求令牌的签名和标头的内容,简单的添加用于您在此过程中需要的其他签名。

    paramsStr = "oauth_callback=" & encodeData(CALL_BACK_URL) & "&" & "oauth_consumer_key=" & sConsumerKey & "&" & "oauth_nonce=" & session.nonce & "&" & "oauth_signature_method=" & SIGNMETHOD & "&" & "oauth_timestamp=" & TIMESTAMP & "&" & "oauth_version=" & VERSION;
    
    signStr = "POST&" & encodeData(REQUEST_TOKEN_URL) & "&" & encodeData(paramsStr);
    
    signature = computeHMACSignature(signStr, sConsumerSecret & "&");
    
    authHeader = 'OAuth ' & createHeaderElement("oauth_consumer_key", trim(sConsumerKey)) & ", " & createHeaderElement("oauth_nonce", trim(session.nonce)) & ","  & createHeaderElement("oauth_signature_method", trim(signmethod)) & ", " & createHeaderElement("oauth_signature", trim(signature)) & ", " & createHeaderElement("oauth_timestamp", trim(TIMESTAMP)) & ", " & createHeaderElement("oauth_version", trim(VERSION)) & ", " & createHeaderElement("oauth_callback", trim(CALL_BACK_URL)); 
    

    【讨论】:

    • 提示,您可以使用工具栏中的代码按钮即{}来格式化sn-ps以获得更好的可读性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2014-09-26
    • 2013-08-05
    • 2022-06-15
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多