Reference > Payments subsystem > Payments subsystem > Payments subsystem architecture


Payment plug-in controller

The Payment plug-in controller is a component of the Payments subsystem. It determines which plug-in to use (based on the payment method) and which plug-in API method to call (based on the action).

The Payment plug-in controller completes the following steps:

  1. Creates a financial transaction.

    • A FinancialTransaction is used to track the progress of the Action as it is processed.

    • It is populated with data associated to the Action and the Payment Instruction.

    • The FinancialTransaction object will contain attributes such as:

      state:               new    
      requested amount:   359.000    
      processed amount:   0.00000    
      reference number:   ...    
      response code:      ...
      payment ID:         10001
      ...
      

    • The transaction data is stored in the PPCPAYTRAN table.

  2. Determine which plug-in to use based on the Payments configuration files:

    • Use the PaymentMappings XML file to get the payment configuration based on the selected payment method.

      <Mapping paymentMethod="VISA"
          paymentConfiguration="CreditCardOnline"
          paymentActionRule="Early Approval"/>
      

    • Use the PaymentMethodConfigurations XML file to get the payment system name based on the payment configuration.

      <PaymentMethodConfiguration 
               name="CreditCardOnline"
           paymentSystemName="Paymentech" 
           systemEditable="true"
           humanEditable="true"
           refundAllowed="true"
           minimumAmount="0"
           maximumAmount="Unbounded"
           priority="MEDIUM"
           partiallyConsumable="true"/>
      

    • And finally, use the PaymetSystemPluginMapping XML file to get the plug-in name based on the payment system name.

      <PaymentSystemName name="Paymentech" >     
      <Mapping paymentConfigurationId="default" pluginName="PaymentechPlugin" >          
      <Keyword name="cc_cvc" mask ="-" plain="0" removeAfterApproval ="true"/>          
      <Keyword name="cc_nameoncard" mask ="*" plain="0" removeAfterApproval ="true"/>          
      <Keyword name="account" mask ="*" plain="-5" searchable="true"/>     
      </Mapping>
      </PaymentSystemName>
      

      Then the payment method configuration CreditCardOnline will be mapped to the payment system Paymentech in PaymentMethodConfigurations.xml, and the payment system Paymentech will be mapped to the payment plug-in PaymentechPlugin in PaymentSystemPluginMapping.xml.

  3. Calls Plugin.Approve(). In this case, PaymentechPlugin.Approve().

  4. Persist the up-to-date payment states with corresponding payment information in the payment related tables.


Related concepts

Payments subsystem

Payments subsystem architecture

Payment events and task commands


+

Search Tips   |   Advanced Search