ATG - 如何在付款过程中持有订单

时间:2014-08-13 14:39:24

标签: payment-gateway payment-processing atg atg-dynamo oracle-commerce

我正在使用网址重定向实施第三方支付网关。付款后,我会自动被PG重定向到我的页面。 当我将用户重定向到支付网关页面时,作为用户,我可以在另一个浏览器中打开购物车并编辑产品,因为订单仍处于“订单不完整”状态。 如果我想在“等待付款”状态下保持订单,则在支付网关没有响应的情况下失败。如何更改订单。 我想为这个等待状态实施超时计划,但我不能说订单付款处理需要多少分钟。 请帮我这个设计。如果有更好的解决方案,请建议。

谢谢, Pradeep Shankar。

1 个答案:

答案 0 :(得分:1)

我建议您使用具有序列化可隔离级别的锁定缓存来调查订单存储库项目和子项目。这意味着尝试授权付款的线程将获得写锁定,从而阻止对订单进行其他更新。

来自ATG文件:

  

多服务器应用程序可能需要锁定缓存,其中一次只有一个Oracle ATG Web Commerce实例具有对给定项类型的缓存数据的写访问权。 您可以使用锁定缓存来防止多个服务器同时尝试更新同一项目 - 例如,Commerce订单项,客户可以在面向外部的服务器上和客户服务代理上更新面向内部的服务器。通过限制写访问,锁定缓存可确保在所有Oracle ATG Web Commerce实例之间保持一致的缓存数据视图。

设置锁定缓存:

  1. 在所有ATG实例上正确配置锁服务器和客户端锁管理器
  2. 对存储库定义的更改
  3. 实质性能测试
  4. 这通常是一个相当大的变化,因为它对性能和稳定性有潜在的影响。

    可以找到更多信息here