【问题标题】:Square REST API: Error issuing refundSquare REST API:发出退款时出错
【发布时间】:2017-02-23 06:56:45
【问题描述】:

每次我尝试退款卡时,我都会在下面粘贴 JSON。这发生在我授权一张卡,然后收取费用,然后想要发放部分退款之后。对于“tender_id”,我已经尝试了交易 ID 和授权期间提交的 ID。当然,对于捕获,没有tender_id 或 id,因为成功的捕获只返回“{}”。

我也在使用沙盒凭据。收费也是通过使用沙盒凭据生成的随机数完成的。

怎么了?

谢谢...

发布到:

 https://connect.squareup.com/v2/locations/CBASEHHNorL75TjuSOAvKQLnuNYgAQ/transactions/a2905f34-c8e8-5534-7676-82e8c580e9bf/refund

有了这个 JSON:

 {  
    "idempotency_key":"6464dc19-1703-47c0-81f9-4f0f1361eada",
    "tender_id":"291d56b3-1e73-5bff-6e8e-719fd134b83f",
    "reason":”Partial refund",
    "amount_money":{  
       "amount":4500,
       "currency":"USD"
   }
 }

给出这个答复:

 {
   "errors": [
     {
       "category": "INVALID_REQUEST_ERROR",
       "code": "NOT_FOUND",
       "detail": "Location `CBASEHHNorL75TjuSOAvKQLnuNYgAQ` does not have a transaction tender with ID `291d56b3-1e73-5bff-6e8e-719fd134b83f`."
     }
   ]
 }

更新:请求的 GET 调用的结果(在答案的 cmets 中)是:

 {  
    "transaction":{  
  "id":"a2905f34-c8e8-5534-7676-82e8c580e9bf",
  "location_id":"CBASEHHNorL75TjuSOAvKQLnuNYgAQ",
  "created_at":"2017-02-21T22:08:10Z",
  "tenders":[  
     {  
        "id":"a18b98c7-5ac7-51c1-618c-3b95ee124c1b",
        "location_id":"CBASEHHNorL75TjuSOAvKQLnuNYgAQ",
        "transaction_id":"a2905f34-c8e8-5534-7676-82e8c580e9bf",
        "created_at":"2017-02-21T22:08:10Z",
        "note":"Online Transaction",
        "amount_money":{  
           "amount":12500,
           "currency":"USD"
        },
        "processing_fee_money":{  
           "amount":372,
           "currency":"USD"
        },
        "type":"CARD",
        "card_details":{  
           "status":"CAPTURED",
           "card":{  
              "card_brand":"VISA",
              "last_4":"5858"
           },
           "entry_method":"KEYED"
        }
     }
  ],
  "reference_id":"63614ae8-539a-4339-b5c7-554bae64fbed",
  "product":"EXTERNAL_API"
    }
 }

【问题讨论】:

  • 通常只有在原始交易完成后的给定时间段后才能退款。这张卡是什么时候扣款的?尝试对昨天收费的卡退款。
  • 我实际上想到了这一点,但文档中没有任何内容表明情况如此。如果是这种情况,而且需要的延迟超过几分钟,我就有问题了。
  • 唯一的时间限制是网络连接到我们系统的时间。您应该几乎可以立即退款。

标签: square square-connect


【解决方案1】:

捕获后,您是否尝试过列出/检索交易以获取完整的详细信息,包括投标 ID?如果这不起作用,您能否从GET /v2/locations/CBASEHHNorL75TjuSOAvKQLnuNYgAQ/transactions/a2905f34-c8e8-5534-7676-82e8c580e9bf 发布您的回复?

【讨论】:

  • 我会试试的,谢谢。但为什么有必要这样做呢?授权给了我几个 ID(我不明白每个 ID 的不同用途)。对带有 capture false 的收费的响应是一个投标列表,每个投标都有一个 id。为什么返回的 ID 无效?
  • 好的@tristansokol 我又试了一次,从头开始。创建一个授权,捕获它,列出交易以验证它的存在。它是并且它具有与我授权时获得的身份验证 ID 相同的事务 ID。我试图退款。同样的错误。我试过id和ten​​der_id。还尝试了我几天前进行的收费。都有同样的错误。你能升级一下吗?
  • 您不必这样做,但您没有正确捕获投标 ID,这些步骤是为了帮助您调试。您需要在退款请求 JSON 中使用 tender_id (a18b98c7-5ac7-51c1-618c-3b95ee124c1b)。在您上面的帖子正文中,您使用了不同交易的transaction_id。如果有帮助,很高兴解释投标和交易有何不同。
  • 我只是尝试在不延迟捕获的情况下进行收费,看看是否可以退款。完全相同的错误。
  • 再次,您似乎尝试使用交易 ID ad51e03e-c287-5905.. 而不是投标 ID 242be5cc-2d2e-5563-5531-42dc920c24ec
猜你喜欢
  • 1970-01-01
  • 2015-04-22
  • 2023-04-03
  • 1970-01-01
  • 2021-09-26
  • 2016-04-17
  • 1970-01-01
  • 2016-06-06
  • 1970-01-01
相关资源
最近更新 更多