Интершоп 7.10. - выбор конфигурации оплаты - PullRequest
0 голосов
/ 25 января 2019

Мы бы хотели получить конфигурацию оплаты из Order в классе Java (расширение 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);

Но мы хотели бы избежать использования устаревшего кода.

ОБНОВЛЕНИЕ: Мы пытаемся получить доступ к этим параметрам BO в коде Java:

enter image description here

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Я бы предложил вам написать расширение PaymentServiceBO. В этом расширении вы можете написать методы получения для запроса определенных значений конфигурации. Код 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());
0 голосов
/ 25 января 2019

Я считаю, что PaymentConfiguration устарела. См. PaymentConfigurationBO javadoc:

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

Таким образом, вам нужно использовать методы PaymentServiceBO или написать расширение бизнес-объекта, которое делает то, что вы хотите.

...