我们希望从Java类中的Order (OrderBO扩展)中获取支付配置。到目前为止,我们已经成功地获得了这样的服务:
final OrderBOPaymentExtension<OrderBO> paymentExtension = getExtendedObject().getExtension(OrderBOPaymentExtension.EXTENSION_ID);
final PaymentBO paymentBO = paymentExtension.getPaymentBOs().stream().findFirst().orElse(null);
PaymentServiceBO paymentServiceBO = paymentBO.getPaymentServiceBO();现在我们需要获取配置,这样我们就可以从支付方法中读取某些配置参数。做这件事的最好方法是什么?
我们知道可以通过PO工厂获取这样的付款配置:
PaymentConfigurationPOFactory f = (PaymentConfigurationPOFactory)NamingMgr.getInstance().lookupFactory(PaymentConfigurationPO.class);
PaymentConfigurationPO r = f.getConfigForIDAndDomain(iD, domain);但我们希望避免使用不推荐的代码。
更新:我们试图实现的是在Java代码中访问这些BO参数:

发布于 2019-01-28 10:01:46
我建议您编写一个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());发布于 2019-01-25 13:21:52
我认为PaymentConfiguration是不可取的。请参见PaymentConfigurationBO javadoc:
Deprecated since 7.6. Payment configurations are now represented via PaymentServiceBOs.因此,您需要使用PaymentServiceBO方法或编写一个业务对象扩展,以满足您的需要。
https://stackoverflow.com/questions/54365374
复制相似问题