2

我已经用我的 Laravel 框架实现了Mollie Payment 。

如何添加取消 URL 以重定向到取消屏幕?正如我在文档中检查的那样,它只有重定向 URL。我还没有找到任何解决这个问题的方法。

4

2 回答 2

0

无法使用 Mollie 指定“已取消”的 Url。而且永远不会有。查看Mollie 团队成员在 Github 上的评论

嘿,伙计们,只是想插话看看我们在 Mollie 可以做些什么来解决问题。

如前所述,我们使用 webhook 系统向您发送有关您的付款的状态更新。我们明确不支持 cancelUrl 或任何其他类型的状态相关 URL,因为它引入了我们的 webhook 系统已经解决的各种安全问题。

(...)

简而言之:我们永远不会实现 cancelUrl,因为它完全违背了我们的 API 设计。如果您仍有疑问,请随时向我们询问有关我们的 webhook 系统的更多信息。

然而:

只需使用我们可以将状态推送到的 webhook URL 设置您的付款。将您的消费者发送到我们提供的网关 URL。然后,一旦他们取消或完成付款,我们会将您的消费者发送回您提供的重定向 URL。在这两种情况下,我们通常会在消费者返回您的网站之前调用您的 webhook URL,以便您向消费者显示适当的状态消息。

因此,您可以做的是在 redirectUrl 中指定订单 ID(可能在JWT中以提高安全性)。您应该在付款元数据中将该订单 ID 发送给 Mollie 。然后,在您的 webhook 控制器中,您应该存储与您的订单相关联的 Mollie 付款状态(当用户通过单击“返回网站”链接取消交易时,此状态为canceled)。最后,一旦 Mollie 将用户重定向到您的redirectUrl,您(在您的控制器中)检查订单的付款状态。如果是canceled,则显示取消的视图。否则,显示成功屏幕。

于 2019-01-05T13:41:50.233 回答
0

阅读文档,我会做的是类似的事情:

$canceled_payment = $mollie->payments->delete($payment_id);
return redirect()->back()->with('message', 'Payment cancelled');

在刀片中,您应该显示以下消息:

@if(session()->has('message'))
<div class="alert alert-success">
    {{ session()->get('message') }}
</div>
@endif
于 2018-12-24T11:02:58.207 回答