package com.walker.pay; import com.walker.infrastructure.arguments.Variable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.Map; public abstract class AbstractPayContext implements PayContext{ protected final transient Logger logger = LoggerFactory.getLogger(getClass()); @Override public String getProviderPayType(){ return this.providerPayType; } @Override public PayDefinition getPayDefinition() { return this.payDefinition; } @Override public Variable getConfigVariable(String key) { if(!configuration.containsKey(key)){ logger.error("支付参数未找到:{}", key); return null; } return this.configuration.get(key); } @Override public void setConfigVariable(Variable variable) { if(configuration.containsKey(variable.getId())){ logger.warn("配置参数已存在,重复设置会覆盖之前数据,id={}, 新设置值={}", variable.getId(), variable.toString()); } this.configuration.put(variable.getId(), variable); } /** * 设置支付定义对象。 * @param payDefinition */ public void setPayDefinition(PayDefinition payDefinition) { this.payDefinition = payDefinition; } /** * 设置第三方支付定义的支付类型字符串 * @param providerPayType */ public void setProviderPayType(String providerPayType) { this.providerPayType = providerPayType; } private String providerPayType = null; private Map configuration = new HashMap<>(8); private PayDefinition payDefinition; }