【问题标题】:Square API callbacks on successfull checkout payment结帐付款成功时的 Square API 回调
【发布时间】:2022-11-29 09:25:48
【问题描述】:

我正在使用 Square API 处理用户付款(使用 Create Checkout Link API): POST /v2/online-checkout/payment-links

问题是 square 不支持开箱即用的支付成功和支付失败的回调函数,它只提供了一个 redirect_url 选项来在用户完成支付时将用户转到另一个页面。

我现在解决它的方法是为每个purchase intent生成一个随机的secret key,并将密钥作为参数传递给redirect_url

redirectr_url = "https://example.com?pid=5&secret_key=abcdefgh12345"

然而,这会将我系统的内部工作原理暴露给任何远程 IT 技术人员,他们可以看到我将密钥作为 GET 参数传递。

即使密钥是类 25 和元素数量 64 的变体,其中元素的顺序很重要并且允许重复(如果数据库有泄漏(例如托管服务提供商被泄露),所有的密钥都将被抢夺,人们可以手动点击 API 来批准他们的购买。我需要使这更微妙或完全改变支付验证过程。

有什么方法可以改进我当前的系统吗?有没有办法像 Stripe API 提供的那样以某种方式使用 Stripe 的 API 通过回调验证购买成功?

【问题讨论】:

    标签: security payment square


    【解决方案1】:

    您可以将您的密钥添加到 redirect_url,但正如您所指出的那样,坏人很容易获得它。您是否查看过在付款链接订单中将您的密钥添加为 reference_id?付款完成后,您可以使用order_id 并致电RetrieveOrder 获取所有订单详细信息,包括您唯一的reference_id,坏人无法访问这些详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多