程序包 com.walker.pay

类 AbstractPayEngineProvider

java.lang.Object
com.walker.pay.AbstractPayEngineProvider
所有已实现的接口:
PayEngineProvider
直接已知子类:
SimplePayEngineProvider

public abstract class AbstractPayEngineProvider extends Object implements PayEngineProvider
  • 字段详细资料

    • logger

      protected final transient org.slf4j.Logger logger
  • 构造器详细资料

    • AbstractPayEngineProvider

      public AbstractPayEngineProvider()
  • 方法详细资料

    • getConfiguration

      public Map<String,Variable> getConfiguration()
    • setOrderNotifyConvertor

      public void setOrderNotifyConvertor(Convertor<NotifyValue<?>> orderNotifyConvertor)
      设置订单通知转换器对象。
      参数:
      orderNotifyConvertor -
    • setConfiguration

      public void setConfiguration(Map<String,Variable> configuration)
      从接口复制的说明: PayEngineProvider
      设置当前支付引擎需要的配置参数。
      指定者:
      setConfiguration 在接口中 PayEngineProvider
    • getServiceProvider

      public ServiceProvider getServiceProvider()
      从接口复制的说明: PayEngineProvider
      返回服务提供商信息。
      指定者:
      getServiceProvider 在接口中 PayEngineProvider
      返回:
    • getVersion

      public String getVersion()
      从接口复制的说明: PayEngineProvider
      返回该提供商支付对接的版本号。

      例如:微信支付存在多个版本,因此服务商+版本号 确定唯一的提供者实现。
      指定者:
      getVersion 在接口中 PayEngineProvider
      返回:
    • getPayChannel

      public PayChannel getPayChannel()
      从接口复制的说明: PayEngineProvider
      返回渠道信息
      指定者:
      getPayChannel 在接口中 PayEngineProvider
      返回:
    • getPayDefinitionId

      public String getPayDefinitionId()
      从接口复制的说明: PayEngineProvider
      返回支付定义ID,应该是支付提供者来确定该定义ID,然后与定义集合对比。
      指定者:
      getPayDefinitionId 在接口中 PayEngineProvider
      返回:
    • setPayChannel

      public void setPayChannel(PayChannel payChannel)
    • setVersion

      public void setVersion(String version)
    • setServiceProvider

      public void setServiceProvider(ServiceProvider serviceProvider)
    • getProviderPayType

      public String getProviderPayType(PayType payType)
      从接口复制的说明: PayEngineProvider
      返回第三方支付类型字符串,如: app/jsapi/native等,这些是第三方支付类型区别。
      指定者:
      getProviderPayType 在接口中 PayEngineProvider
      返回:
    • acquireProviderPayType

      protected abstract String acquireProviderPayType(ServiceProvider serviceProvider, PayType payType, PayChannel payChannel)
      根据支付配置信息,获取第三方支付系统的"支付类型"字符串。
      参数:
      serviceProvider -
      payType -
      payChannel -
      返回:
    • acquireOrderGenerator

      @Deprecated protected abstract OrderGenerator acquireOrderGenerator(String providerPayType, Order platformOrder, Map<String,Variable> configuration)
      已过时。
      获取(预)订单生成器对象,该对象执行具体的第三方订单调用并返回结果。
      参数:
      providerPayType - 第三方支付的"支付类型",如:微信的native、h5等
      platformOrder - 平台订单对象
      configuration - 第三方对接配置参数
      返回:
    • savePrepareOrder

      protected abstract void savePrepareOrder(Order platformOrder, ResponsePay responsePay)
      成功后,保存订单信息到平台。
      参数:
      platformOrder -
      responsePay -
    • generatePrepareOrder

      public ResponsePay generatePrepareOrder(Order platformOrder) throws OrderException
      从接口复制的说明: PayEngineProvider
      生成预下单的订单对象。
      指定者:
      generatePrepareOrder 在接口中 PayEngineProvider
      返回:
      ResponseValue 返回调用结果
      抛出:
      OrderException - 订单获取异常
    • notifyOrder

      public void notifyOrder(Object notifyData) throws NotifyException
      从接口复制的说明: PayEngineProvider
      订单结果通知,业务在接收到第三方通知后,需要调用该方法处理具体流程。
      指定者:
      notifyOrder 在接口中 PayEngineProvider
      参数:
      notifyData - 通知消息 // * @param callBack 业务回调函数
      抛出:
      NotifyException
    • searchOrderStatus

      public OrderStatusResponsePay searchOrderStatus(Order order)
      从接口复制的说明: PayEngineProvider
      查询支付订单状态。
      指定者:
      searchOrderStatus 在接口中 PayEngineProvider
      参数:
      order - 系统内部订单对象
      返回:
    • verifySign

      protected abstract boolean verifySign(Object notifyData) throws Exception
      验证签名是否合法。
      参数:
      notifyData -
      返回:
      抛出:
      Exception
    • onNotifyOrder

      protected abstract void onNotifyOrder(NotifyValue<?> notifyValue) throws Exception
      平台处理订单支付通知,目前与业务回调区分开。
           1)需要处理多次通知的情况,否则无法给第三方确认(如:微信)
           2)主要是保存平台订单操作。
       
      参数:
      notifyValue -
      抛出:
      Exception
    • acquirePayContext

      protected abstract PayContext acquirePayContext(String providerPayType, Order platformOrder, Map<String,Variable> configuration)
      生成支付操作上下文对象。
      参数:
      providerPayType - 第三方支付类型
      platformOrder - 平台订单
      configuration - 参数配置
      返回:
    • acquireOrderStatusQuery

      protected abstract OrderStatusQuery acquireOrderStatusQuery(Order order)
      获取订单查询条件对象,由子类组装定义。
      参数:
      order - 系统订单号
      返回:
    • invokeOrderStatus

      protected abstract OrderStatusResponsePay invokeOrderStatus(OrderStatusQuery orderStatusQuery)
      实现具体查询订单状态过程。
      参数:
      orderStatusQuery -
      返回:
    • getPayDefinition

      public PayDefinition getPayDefinition()
    • setPayDefinition

      public void setPayDefinition(PayDefinition payDefinition)
      从接口复制的说明: PayEngineProvider
      设置当前支付引擎的 '支付定义' 对象。
      指定者:
      setPayDefinition 在接口中 PayEngineProvider
    • getOrderCallback

      public OrderCallBack getOrderCallback()
      返回订单业务操作回调实现,在订单下单以及通知等过程中可实现业务切入机会。
      返回:
    • setOrderCallback

      public void setOrderCallback(OrderCallBack orderCallback)
      从接口复制的说明: PayEngineProvider
      设置订单操作的回调实现,该接口定义了支付订单过程的一个关键节点的入口回调,
      业务通过实现接口,避免支付与业务的耦合,起到分离作用。
      指定者:
      setOrderCallback 在接口中 PayEngineProvider