Dwolla API Webhooks Notification是否发送了错误的交易ID?

时间:2012-10-23 18:27:39

标签: webhooks dwolla

我认为Dwolla API会在通知中发送错误的事务ID。在正常的dwolla money交易中,创建了两个交易ID(这对我来说很奇怪,但这就是dwolla的做法)。因为这两个是同时创建的,所以它们总是(根据我的经验)连续数字。 所以例如如果账户X向账户Y汇款,Y将看到交易ID M,而X将看到交易ID M + 1.

但是Dwolla的通知webhook将以ID M + 1发送交易的Y细节。虽然ID M + 1对于此事务仍然是唯一的,但是Y通过API不能使用ID M + 1 - 因为M + 1应该仅由X使用。

这是一个具体的例子:

  1. 通过我的网络应用程序,我通过非现场网关api从我的个人dwolla帐户向我的组织汇款。
  2. 我的网络应用程序以回调和通知形式发送交易详情。步骤1生成的事务ID为1431566.这是发送给回调和通知的事务ID。我的网络应用程序存储此ID以供将来使用。
  3. 通过我的webapp,我决定从我的组织中退还我的个人dwolla帐户:
  4. 我的webapp尝试查询dwolla有关事务1431566,以获取SourceId,但这失败了 - dwolla报告“找不到帐户的交易”。我的自动退款无法继续,如果没有一个丑陋的kludge,比如从Id中减去一个并再次尝试。

    手动解决方法是通过Web界面登录我组织的dwolla帐户。在这里,我可以根据日期时间查找事务,我可以看到事务ID实际上是1431565(在Web界面中正确报告)。如果我进入我组织的数据库并用1431565替换1431566,我可以重复步骤4并且这次工作正常。之后我可以发起send()并退款。

  5. 我在dwolla支持stackoverflow之前报告了同样的问题:https://getsatisfaction.com/dwolla/topics/callback_and_webhook_notification_sent_wrong_transaction_id_off_by_one

    我认为如果其他人遇到同样的问题,它会更快修复。或者也许我错过了一些明显的东西,有人会指出它。

2 个答案:

答案 0 :(得分:1)

感谢Michael的帮助,我们能够在获取交易详情而不是发件人的OAuth令牌时使用接收者的 OAuth令牌来解决此问题。

例如,假设我使用API​​发送一些钱,并且为发送者发送交易1202,为收款人发送1201。如果您进行API调用以获取事务1202的详细信息但使用接收方的OAuth令牌,它将为您提供事务1201的详细信息,包括费用信息。

我不确定情况是否完全相同,因为我们在两次交易之间充当促进者,因此无法保证这将适用于您的情况。但值得一试。

答案 1 :(得分:-1)

所以,你的应用程序的关键& secret可以通过传递应用程序的client_id和client_secret的transactionById()方法来访问发布给您的事务ID,而不是oauth_token。这意味着,当您轮询事务时,而不是查询此URL:

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

有道理吗?