我有一个 CommerceService 模块来帮助实现常见的订单处理功能,其中包括通过 Authorize.net、Paypal 和 Google Checkout 等提供商进行的付款授权之类的事情。它提供了一个简单的接口(interface),例如 placeOrder(Order) 并完成了繁重的工作。
本地支付提供商的事情很简单,但是 Paypal 和 Google 提供远程支付服务,因此以 Paypal 为例,用户可以离开您的网站,在那里付款,然后 Paypal 将发送一个 Http 通知以连接到您的订单流程.
我的问题是处理这些通知。理想情况下,将 HttpRequest 对象传递到服务层并让服务使用 handleRemoteOrder(Request, Response) 来完成订单是最简单的,而不是强制前端担心这些。但是将请求和响应传递给服务层在直觉上似乎是错误的。
我考虑过将请求参数提取到 Map 并简单地传递它,但是 google checkout java sdk 明确地处理请求和响应对象,因此不使用 sdk 会很麻烦。
将 HttpRequest 传到这么远的地方是否令人不悦?如果是这样,是否应该有前端逻辑来处理这个问题?还是这是多余的担心,我不应该想那么多?
最佳答案
将 HttpRequest
和 HttpResponse
包装在实现接口(interface)的类中,并使服务层依赖于接口(interface)。对于 Google 以外的其他服务,您可以通过请求参数传递 map ,对于 Google 则传递包装器实现。无论如何,服务层不会知道背后发生了什么。
关于java - 关于将 HttpRequest 和 HttpResponse 传递给服务层的想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6625155/