【问题标题】:How to handle an online payment handled using Web Services safely?如何安全地处理使用 Web 服务处理的在线支付?
【发布时间】:2011-06-14 11:52:56
【问题描述】:

免责声明:我对 Web 服务的工作原理只有非常基本的了解,对事务等高级 WS 主题了解不多。

假设我正在使用 Java EE、JPA 等开发在线商店。还假设我与在线支付处理提供商签订了处理付款的合同,并且他们为我提供了 WS API。

现在让我们假设客户已下订单。在会话 bean 中(例如在 OrderSB.placeOrder 中)我打开了一个事务,在数据库中保存了一个订单,现在我正在调用支付提供商的 WS API。它成功返回(并且我假设现在我的客户的帐户已被借记)但在我可以保存订单的关联付款之前(订单和付款之间存在一对一的关系)发生异常并且我的交易被回滚。

如何确保在发生此类异常时不会从我客户的帐户中扣款?或者换句话说,WS 调用和OrderSB.placeOrder 都应该成功完成并提交,或者它们都应该一起回滚。

如果WS调用失败,回滚placeOrder很容易,但是不知道WS调用返回后如何回滚。

【问题讨论】:

    标签: web-services jakarta-ee ejb jax-ws


    【解决方案1】:

    您为什么不完成 placeOrder 流程​​并在第一个成功完成的情况下执行 WS 调用?然后就像你说的那样容易回滚placeOrder,如果第二个出现错误就回滚第一个。还是我没听懂你的问题?

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 2011-07-31
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多