2012-10-23 42 views
3

我認爲Dwolla API在通知中發送了錯誤的事務ID。在正常的dwolla貨幣交易中,創建了兩個交易ID(這對我來說很奇怪,但這就是dwolla所做的)。因爲這兩個是同時創建的,他們總是(以我的經驗)連續的數字。 因此,例如如果賬戶X向賬戶Y發送資金,則Y將看到交易ID爲M,並且X將看到交易ID爲M + 1。Dwolla API Webhooks通知是否發送錯誤的事務ID?

但Dwolla的通知webhook會發送交易的詳細信息與id M + 1。雖然ID M + 1對於此交易仍然是唯一的,但是ID M + 1不能通過API使用,因爲M + 1應該只由X使用。

以下是一個具體示例:

  1. 通過我的web應用程序,我從我的個人dwolla帳戶通過離線網關API向我的組織發送資金。
  2. 我的web應用程序以回調和通知的形式發送交易細節。步驟1生成的事務ID是1431566.這是發送到回調和通知的事務ID。我的網絡應用程序存儲此ID以供將來使用。
  3. 通過我的web應用程序,我決定從我的組織,以便退還我個人dwolla賬號:
  4. 我的web應用程序試圖查詢dwolla有關事務1431566,得到的sourceID,但這種失敗 - dwolla報告「交易未找到帳戶」。我的自動退款不能繼續,沒有一個醜陋的kludge像減去一個Id並再次嘗試。

    手動解決方法是通過Web界面登錄到我組織的dwolla帳戶。在這裏,我可以根據日期時間查找事務,並且我可以看到事務ID實際上是1431565(在Web界面中正確報告)。如果我進入我的組織的數據庫並用1431565替換1431566,那麼我可以重複步驟4,這次它可以工作。之後,我可以發起一個發送()並退款。

我這裏報告了同樣的問題之前dwolla移動支持計算器:https://getsatisfaction.com/dwolla/topics/callback_and_webhook_notification_sent_wrong_transaction_id_off_by_one

我想,這將是固定的速度更快,如果其他人有同樣的問題。或者也許我錯過了一些明顯的東西,有人會指出。

+1

我也對此感到困惑。我剛剛完成一項交易。交易ID通過webhook報告爲XXXX132。當我看到Dwolla網站時,它的ID爲XXXX131,而.25c費用爲XXXX130。有人可以澄清嗎? – gae123

+0

XXXX132和XXXX131是此處報告的問題的代表。當Dwolla收取費用時,它被視爲完全獨立的交易,這解釋了XXXX130。 – chrishiestand

+1

正如在這個問題中所述:http://stackoverflow.com/questions/14163351/dwolla-transaction-ids-relationship/14167688#comment19631907_14167688,一張票被輸入以返回特定轉​​帳的所有交易ID的列表。 – Rocky

回答

1

感謝Michael的幫助,我們能夠在獲取交易詳情而不是發件人的OAuth令牌時,通過使用接收方的 OAuth令牌解決此問題。

例如,假設我使用API​​發送了一些資金,並且發送者的交易1202和貨幣接收者的1201被創建。如果您使用API​​調用來獲取交易1202的詳細信息,但使用接收者的OAuth令牌,它將爲您提供交易1201的詳細信息,包括費用信息。

我不確定情況是否完全相同,因爲我們擔任兩個交易之間的協調人,所以不保證這會適用於您的情況。但值得一試。

+0

感謝您的幫助。這可能是在此問題的評論中報告的解決方法@Rocky的結果。我將不得不測試它並嘗試。 如果Dwolla已經承認了這個問題,那就好了,而我已經冷落了10個月。 – chrishiestand

+0

沒問題。如果沒有辦法獲得這些信息,我也會感到不安。我期待着一個獨特的交易ID,標識整個shebang。希望他們能夠在某個時刻得到所有的結果。 –

+0

該解決方法已得到確認,謝謝@Shea。我應該說,除了使用**接收者的** OAuth令牌外,您還可以使用**接收者的** api密鑰和祕密來驗證以獲取正確的事務ID。這取決於api庫。 所以這真的證實了它。 Dwolla webhook發送不正確的事務ID。但是事務/ $ id api調用返回正確的id,即使給定webhook的不正確的事務ID。藉助此解決方案,我終於使dwolla交易完全自動化。 我仍然希望Dwolla能夠解決這個問題,但現在必須這樣做。 – chrishiestand

-1

因此,您的應用程序的密鑰&祕密可以通過將transactionById()方法傳遞給您的應用程序的client_id和client_secret而不是oauth_token來訪問發佈給您的事務ID。意思是,當你的查詢,而不是查詢該網址進行交易,:

https://www.dwolla.com/oauth/rest/transactions/{transaction_id}?oauth_token=x 

查詢這個網址,而不是:

https://www.dwolla.com/oauth/rest/transactions/{transaction_id}?client_id=x&client_secret=y 

有道理?

+0

無論使用什麼驗證方法,這都是一個問題。請重新閱讀問題描述。問題是Dwolla通知發送錯誤的事務ID。 順便說一句,你可以看到我在這個拉請求中使用參數驗證:https://github.com/Dwolla/dwolla-php/pull/10 – chrishiestand

相關問題