Util @Component public class PayProcessorFactoryUtil { @Autowired private ApplicationContext context; public BasePay createPayProcessor( String type ) { return ( BasePay ) context.getBean( ID + "Processor" ); } }
父类
public interface BasePay { /** * 支付下单 * * @param payChannelNew 支付渠道表 * @param payPlatformNew 支付平台表 * @param reqPayRecharge 下单数据,包括渠道ID和下单金额 * @return 获取的支付URL */ String orderPay( PayChannelNew payChannelNew, PayPlatformNew payPlatformNew, ReqPayRechargeNew reqPayRecharge ); /** * 支付查询 * * @param payJour 线上支付记录表 * @param payPlatformNew 支付平台表 * @param payChannelNew 支付渠道表 * @return 支付状态是否成功 */ boolean queryPay( MemberPayJour payJour, PayPlatformNew payPlatformNew, PayChannelNew payChannelNew ); /** * 支付回调 * * @param requestMap 第三方回调过来的数据 * @param realIp 第三方回调IP * @return 是否成功文本 */ String callbackPay( Map<String, Object> requestMap, String realIp ); }
入口
BasePay basePay = payProcessorFactoryUtil.createPayProcessor( ID );
basePay.orderPay
basePay.queryPay
basePay.callbackPay
某个支付需要继承BasePay
@Repository( value = ID + "Processor" )