Intershop 7.10。 -获取付款配置

时间:2019-01-25 12:29:16

标签: service payment intershop

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

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参数:

enter image description here

2 个答案:

答案 0 :(得分:2)

我建议您编写一个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());

答案 1 :(得分:1)

我认为不建议使用PaymentConfiguration。参见PaymentConfigurationBO javadoc:

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

因此,您需要使用PaymentServiceBO方法或编写可满足您需求的业务对象扩展。