【发布时间】:2012-10-13 18:18:42
【问题描述】:
我认为 Dwolla API 在通知中发送了错误的交易 ID。在正常的 dwolla 货币交易中,会创建两个交易 ID(这对我来说很奇怪,但 dwolla 就是这样做的)。因为这两个是同时创建的,所以它们总是(根据我的经验)连续的数字。 所以例如如果账户 X 向账户 Y 汇款,Y 会看到交易 id M,X 会看到交易 id M+1。
但 Dwolla 的通知 webhook 会发送 Y 条 id 为 M+1 的交易详情。虽然 ID M+1 对该交易仍然是唯一的,但 ID M+1 不能被 Y 通过 API 使用 - 因为 M+1 应该只被 X 使用。
这是一个具体的例子:
-
通过我的网络应用,我通过异地网关 api 从我的个人 dwolla 账户向我的组织汇款。
-
我的 webapp 以回调和通知形式发送交易详细信息。第 1 步生成的事务 id 是 1431566。这是发送给回调和通知的事务 id。我的网络应用程序会存储此 ID 以供将来使用。
-
通过我的 web 应用程序,我决定从我的组织退还我的个人 dwolla 帐户,因此:
-
我的 webapp 尝试向 dwolla 查询交易 1431566,以获取 SourceId,但这失败了 - dwolla 报告“找不到帐户的交易”。如果没有像从 Id 中减去一个并重试这样的丑陋杂物,我的自动退款将无法继续。
手动解决方法是通过 Web 界面登录到我组织的 dwolla 帐户。在这里我可以根据日期时间查找交易,可以看到交易ID实际上是1431565(在Web界面中正确报告)。如果我进入我组织的数据库并将 1431566 替换为 1431565,我可以重复第 4 步,这一次可以正常工作。之后我可以发起一个 send() 并退款。
在 dwolla 将支持转移到 stackoverflow 之前,我在这里报告了同样的问题:https://getsatisfaction.com/dwolla/topics/callback_and_webhook_notification_sent_wrong_transaction_id_off_by_one
我认为如果其他人有同样的问题,它会更快地得到解决。或者也许我遗漏了一些明显的东西,有人会指出来。
【问题讨论】:
-
我也对此感到困惑。我刚刚完成了一笔交易。事务 ID 通过 webhook 报告为 XXXX132。当我查看 Dwolla 网站时,它的 ID 为 XXXX131,而 .25c 费用的 ID 为 XXXX130。有人可以澄清一下吗?
-
XXXX132 和 XXXX131 代表此处报告的问题。当 Dwolla 收取费用时,它被视为完全独立的交易,这就解释了 XXXX130。
-
如本问题所述:stackoverflow.com/questions/14163351/…,输入了一张票以返回特定转账的所有交易 ID 的列表。
-
@Rocky,我希望 webhook 也修复发送正确的事务 ID。但是,只要可以检索到正确的,这将是一个足够的解决方法。