Intershop 7.10。 - 获取支付配置

Intershop 7.10. - fetching payment configuration

我们想从 Java class 中的订单(OrderBO 扩展)中获取支付配置。到目前为止,我们已经设法像这样获取服务:

final OrderBOPaymentExtension<OrderBO> paymentExtension = getExtendedObject().getExtension(OrderBOPaymentExtension.EXTENSION_ID);

final PaymentBO paymentBO = paymentExtension.getPaymentBOs().stream().findFirst().orElse(null);

PaymentServiceBO paymentServiceBO = paymentBO.getPaymentServiceBO();

现在我们需要获取配置,所以我们可以从支付方式中读取某些配置参数。最好的方法是什么?

我们知道可以像这样通过 PO Factory 获取支付配置:

PaymentConfigurationPOFactory f = (PaymentConfigurationPOFactory)NamingMgr.getInstance().lookupFactory(PaymentConfigurationPO.class);
PaymentConfigurationPO r = f.getConfigForIDAndDomain(iD, domain);

但我们希望避免使用已弃用的代码。

更新: 我们想要实现的是在 Java 代码中访问这些 BO 参数:

我认为 PaymentConfiguration 已被弃用。请参阅 PaymentConfigurationBO javadoc:

Deprecated since 7.6. Payment configurations are now represented via PaymentServiceBOs.

所以您需要使用 PaymentServiceBO 方法或编写一个业务对象扩展来执行您想要的操作。

我建议你写一个 PaymentServiceBO 扩展。在该扩展中,您可以编写 getter 方法来查询某些配置值。 java访问服务配置对象的代码是:

PaymentConfiguration paymentConfig = paymentServiceBO.getExtension(PersistentObjectBOExtension.class).getPersistentObject();
ServiceConfigurationBO serviceConfigurationBO = repository.getServiceConfigurationBOByID(paymentConfig.getManagedServiceConfiguration().getUUID());
ConfigurationProvider configProviderExtension = serviceConfigurationBO.getExtension(ConfigurationProvider.class);
Configuration configuration = configProviderExtension.getConfiguration();
Logger.debug(this, "payment service config keys = {}", configuration.getKeys());