3

在我的CF應用程序中,我使用CF OAuth code at riaforge從QuickBooks Online獲取請求令牌和訪問令牌,並且它工作正常。 我嘗試通過開始構建呼叫的http標題來創建QBO API調用(我按照「HTTP授權標題」部分中的說明操作:Implement OAuth in Your App)。然後根據riaforge中代碼的方法構建http頭,因爲它工作正常。另外,我已經考慮了Intuit在上一個鏈接中給出的參數順序)。如何在ColdFusion 9中籤署quickbooks在線API請求?

當我推出的API調用,我收到了回覆:「signature_invalid」

我真的想如何與CF 9簽署QBO網上API調用的方向,如果我有準備的6頭參數:

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

(但是,如果可能的一個工作代碼會更好)

預先感謝您的時間和幫助

回答

0

這是我用於生成簽名,標頭爲請求標記,簡單的添加用於您將需要的其他簽名。

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)); 
+0

提示,您可以使用代碼按鈕,即工具欄中的「{}」來對代碼片段進行格式化以提高可讀性 – Leigh