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());
我们想从 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());