结帐成功后未找到 Square 交易

Square transaction not found after successful checkout

我正在尝试 verify transaction results on the redirect URL after the Square Checkout process using the Square Connect C# SDK,但 RetrieveTransaction 返回以下异常:

{
    "errors":
    [{
        "category": "INVALID_REQUEST_ERROR",
        "code": "NOT_FOUND",
        "detail": "Location `XXXXXXX` does not have a transaction with ID `XXXXXXX`.",
        "field":"transaction_id"
    }]
}

我已验证位置 ID 和返回的交易 ID 均正确无误。事实上,如果我在一两分钟后进行完全相同的调用,它会成功 returns 正确的交易细节。仅在用户完成结帐后立即失败。

当用户被重定向回重定向 URL 时,交易似乎还没有真正创建。那是对的吗? Square's PHP example 没有提到等待交易存在的任何事情。

我是否需要在尝试验证交易之前实施某种延迟?

更新:我刚刚尝试了 运行 一个测试,在该测试中我反复调用 RetrieveTransaction 直到成功。看起来事务在重定向发生后一两秒才存在。如果这是正常的,那么文档非常需要更新。

是否可能需要更长时间才能完成交易?

您是正确的,因为在用户被重定向后您必须等待几秒钟才能检索交易。 我们不断努力根据我们从客户那里收到的反馈改进我们的产品和服务。我一定会与合适的团队分享这个。

如果我能进一步帮助您,请随时告诉我。我很乐意提供帮助。

我们也运行加入了这个。这是一个相当大且致命的问题,因此正在收取费用并且您收到错误。一点都不方便。我们在我们的函数中添加了一个 sleeper 以使其工作。我会说这不是最佳选择,但它有效。