The following happens when a user chooses his payment method and places the order.
Payment Method (VISA) + Payment Configuration Rule (CreditCardOnline) = Payment Action (Early Approval)
WC/xml/config/payments/edp/groups/default/PaymentMapping.xml
<Mapping paymentMethod="VISA" paymentConfiguration="CreditCardOnline" paymentActionRule="Early Approval"/>
2. Determine the target state
Payment Action Rule (Early Approval) + Business Event (PrimePayment) = Target State (APPROVED)
WC/xml/config/payments/edp/groups/default/PaymentRules.xml
<PaymentRule name="Early Approval">
<PrimePaymentEvent targetState="APPROVED" />
<ReservePaymentEvent targetState="APPROVED"/>
<FinalizePaymentEvent targetState="DEPOSITED" />
</PaymentRule>
3. Determine the actions
Payment Configuration (CreditCardOnline) + Target State (APPROVED) + Current State (DNE) = Action(Approve)
WC/xml/config/payments/edp/groups/default/CreditCardOnline/CorePaymentActions.xml
<TargetApproved>
<CurrentDNE>
<Action name="Approve" amount="requested" target="new"/>
</CurrentDNE>
</TargetApproved>
4. Create an event for the actions
Payment Instruction (VISA + data) + Business Event (PrimePayment) = Event (Approve)
The Action is wrapped into an Event, which is passed to the Payment Plug-in Controller
A FinancialTransaction is used to track the progress of the Action as it is processed. It is populated with data associated with the requested Action and the corresponding payment instruction.
The FinancialTransaction object contains attributes:
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. Finds the appropriate Plug-in that services the request
Payment Method (VISA) + Payment Configuration (CreditCardOnline) = Payment Action Rule (Early Approval)
xml/config/payments/edp/groups/default/PaymentMapping.xml
<Mapping paymentMethod="VISA" paymentConfiguration="CreditCardOnline" paymentActionRule="Early Approval"/>
Payment Configuration (CreditCardOnline) = Payment System (MyPaymentPlugin)
xml/config/payments/edp/groups/default/PaymentMethodConfigurations.xml
<PaymentMethodConfiguration name="CreditCardOnline" paymentSystemName="MyPaymentSystem" .../>
Payment System (MyPaymentSystem) = Plug-in (PaymentechPlugin)
xml/config/payments/ppc/plugins/PaymentSystemPluginMapping.xml
<PaymentSystemName name="MyPaymentSystem" >
<Mapping paymentConfigurationId="default" pluginName="MyPaymentPlugin" >
3. Calls Plugin.Approve(...)
Plugin.Approve(...) calls MyPaymenPlugin.Approve(...) passing along the Financial Transaction object that was created.
2. It calls backend Payment Service Provider (PSP) to perform the action
3. It populates FinancialTransaction with response data
The plug-in implements API (com.ibm.commerce.payments.plugin.QueryablePlugin)
This API has methods that map to the actions to be performed
public FinancialTransaction approve(...
public FinancialTransaction deposit(...
public FinancialTransaction credit(...
public FinancialTransaction
approveAndDeposit(...
public FinancialTransaction reverseApproval(...
public FinancialTransaction reverseCredit(...
public FinancialTransaction reverseDeposit(...
...
The implementation of these methods communicates to the backend (PSP) using their backend specific APIs
- Shopper adds payment instruction
- PIAdd command runs
- PIAdd command does the following
- Persists the payment information in ORDPAYINFO.
- Creates a payment instruction in EDPPAYINST.)
- Determine the Payment Method.
E.g., payment method = VISA - Definine the Payment Instruction
E.g., Payment Instruction = VISA + Card Number + Expiry date + CVV
- Shopper submits the order
- Order Process command runs
- OrderProcess invokes PrimePayment Task command
- The PrimePayment command calls the Payment Rules Engine.
-
The Payment Rules Engine determines the Action that needs to be
performed on the payment instruction/method and the business event.
Payment Instruction (VISA + data) + Business Event (PrimePayment) = Event (Approve)
Payment Method (VISA) + Payment Configuration Rule (CreditCardOnline) = Payment Action (Early Approval)
WC/xml/config/payments/edp/groups/default/PaymentMapping.xml
<Mapping paymentMethod="VISA" paymentConfiguration="CreditCardOnline" paymentActionRule="Early Approval"/>
2. Determine the target state
Payment Action Rule (Early Approval) + Business Event (PrimePayment) = Target State (APPROVED)
WC/xml/config/payments/edp/groups/default/PaymentRules.xml
<PaymentRule name="Early Approval">
<PrimePaymentEvent targetState="APPROVED" />
<ReservePaymentEvent targetState="APPROVED"/>
<FinalizePaymentEvent targetState="DEPOSITED" />
</PaymentRule>
3. Determine the actions
Payment Configuration (CreditCardOnline) + Target State (APPROVED) + Current State (DNE) = Action(Approve)
WC/xml/config/payments/edp/groups/default/CreditCardOnline/CorePaymentActions.xml
<TargetApproved>
<CurrentDNE>
<Action name="Approve" amount="requested" target="new"/>
</CurrentDNE>
</TargetApproved>
4. Create an event for the actions
Payment Instruction (VISA + data) + Business Event (PrimePayment) = Event (Approve)
The Action is wrapped into an Event, which is passed to the Payment Plug-in Controller
- The Payment Plug-in Controller determines the Plug-in to be used
A FinancialTransaction is used to track the progress of the Action as it is processed. It is populated with data associated with the requested Action and the corresponding payment instruction.
The FinancialTransaction object contains attributes:
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. Finds the appropriate Plug-in that services the request
Payment Method (VISA) + Payment Configuration (CreditCardOnline) = Payment Action Rule (Early Approval)
xml/config/payments/edp/groups/default/PaymentMapping.xml
<Mapping paymentMethod="VISA" paymentConfiguration="CreditCardOnline" paymentActionRule="Early Approval"/>
Payment Configuration (CreditCardOnline) = Payment System (MyPaymentPlugin)
xml/config/payments/edp/groups/default/PaymentMethodConfigurations.xml
<PaymentMethodConfiguration name="CreditCardOnline" paymentSystemName="MyPaymentSystem" .../>
Payment System (MyPaymentSystem) = Plug-in (PaymentechPlugin)
xml/config/payments/ppc/plugins/PaymentSystemPluginMapping.xml
<PaymentSystemName name="MyPaymentSystem" >
<Mapping paymentConfigurationId="default" pluginName="MyPaymentPlugin" >
3. Calls Plugin.Approve(...)
Plugin.Approve(...) calls MyPaymenPlugin.Approve(...) passing along the Financial Transaction object that was created.
- The Action is invoked against the Plug-in
- The Plug-in interacts with the backend payment service provider
2. It calls backend Payment Service Provider (PSP) to perform the action
3. It populates FinancialTransaction with response data
The plug-in implements API (com.ibm.commerce.payments.plugin.QueryablePlugin)
This API has methods that map to the actions to be performed
public FinancialTransaction approve(...
public FinancialTransaction deposit(...
public FinancialTransaction credit(...
public FinancialTransaction
approveAndDeposit(...
public FinancialTransaction reverseApproval(...
public FinancialTransaction reverseCredit(...
public FinancialTransaction reverseDeposit(...
...
The implementation of these methods communicates to the backend (PSP) using their backend specific APIs
There are many business owners who look to charge payments from customers' credit or debit cards. They need high risk merchant accounts to collect payments. First you need to identify that your business comes in a high risk industry or low risk industry, if you belong to a high risk industry then you need to apply for high risk merchant account instant approval
amazing blog is written by you, if you want to know Payment gateway providers also visit my website 5starprocessing.com
ReplyDeleteWe have the payment solutions you want and need. Frictionless payments for any business type, next-day deposits, and unmatched customer service. A mobile payment application possesses the flexibility to be taken anywhere but also the elegance for any storefront. Operate your business payments easily with Sky Systemz. Accept payments using the Sky Systemz Web terminal from any Windows or Mac PC. Computers, tablets, and smartphones are the most sophisticated hardware on the market today. When combined with the most powerful software in the payment space, your business has the ultimate solution to thrive beyond the confinements of your business doors.
ReplyDeleteamazing flow explanation thank you btw check out credit card processing service
ReplyDeletecheck out lockedown protocol on https://techbigo.com/
ReplyDelete