【问题标题】:Accessing Payment service configuration from within JAVA code从 JAVA 代码中访问支付服务配置
【发布时间】:2019-01-18 19:13:13
【问题描述】:

在我们的网上商店,需要检索一些支付方式配置值。在旧的基于 ES6.4 的网上商店中,我们曾经像这样检索支付服务配置值:

Iterator<? extends PaymentInstrumentInfo> piis = order.createPaymentInstrumentInfoIterator(); /* order.getPaymentMethod(); */
    PaymentInstrumentInfo pii = piis.next();
    final String isCreditCard = pii.getPaymentService().getConfiguration().getString("CreditCardPayment");
    String pmn = pii.getPaymentService().getID();

在 IS7.9 中,PaymentInstrumentInfo 对象上的 getPaymentService() 方法似乎已被弃用,但在 javadoc 中,注释中没有对弃用的解释,它只是被标记为弃用。

在 IS7.9 中我们应该如何检索支付方式服务配置参数?

【问题讨论】:

  • 你确定 com.intershop.beehive.bts.capi.payment.PaymentInstrumentInfo.getPaymentService() 被标记为@deprecated 吗?我在源码中看不到。
  • 似乎整个 com.intershop.beehive.bts.capi.payment.PaymentService 类都被标记为已弃用。
  • 您能否通过提供有关您想要实现的目标的更多信息来帮助我们?您是否尝试迁移现有连接器?那么新的支付 API 就是你的朋友了。您是否正在尝试重新设计业务功能?那么请坚持 BusinessObject API 层而不是低级 CAPI 持久层
  • @JohannesMetzner 我们正在迁移 ERP 连接器。我们必须通过 SOAP WS 在 ERP 上创建订单。我们的网上商店提供多种支付方式,在外部 ERP 系统上创建订单取决于众多支付方式服务配置参数。这就是为什么我们需要在 Web 服务请求生成期间获取服务配置并读取其参数。

标签: java payment intershop


【解决方案1】:

ISH 提供了一个 GetPaymentServiceConfigurationByID pipelet,它根据 ID 和域检索 PaymentServiceConfiguration

PaymentServiceConfiguration 的 ID 和域可以通过以下方式找到:

String serviceConfigurationDomain = pii.getServiceConfigurationDomain();
String serviceConfigurationID = pii.getServiceConfigurationID();

请注意getServiceConfigurationDomain 方法返回String 而不是Domain。要从此字符串中获取实际域,您可以使用 GetDomainByName 管道。

【讨论】:

  • 谢谢。我实际上无法使用 pipelet,但我反编译了它,这可以解决问题: final PaymentServiceConfiguration serviceConf = paymentServiceConfFactory.getByDomainAndID(domainMgr.getDomainByName(pii.getServiceConfigurationDomain()), pii.getServiceConfigurationID());
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 2012-07-10
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多