Download Diagrams
typewriter
style denotes terms that directly correspond with class/interface/method names):Term | Description |
---|---|
PSP | Payment Service Provider |
PSC | Payment Service Connector |
Capability | A capability denotes a specific ability of a payment service |
S2S | Server-to-server |
Payment Method | A payment method describes the way money is transferred from one party to another |
Payment Instrument | A payment instrument is the object that holds the data representing the user's bank account. The data depend on the payment method used |
Payment | A payment is the actual object that facilitates a transaction via a specific payment method (using a payment instrument) |
PII | Payment Instrument Information |
PT | Payment Transaction |
PaymentService
all payment services have to implement. Each feature that a payment service has to support can easily be added by implementing a so-called capability.Package | Description |
---|---|
com.intershop.api.annotation | Contains annotations used in the API |
com.intershop.api.data | Provides interfaces and classes for dealing with different data used in the service calls |
com.intershop.api.service.payment | Provides interfaces for implementing the payment connectors as well as the classes for dealing with service response |
v1
) of the service API is in use.Capability | Description |
---|---|
PaymentCapability | Parent interface of all payment service capabilities. A capability denotes a specific ability of a payment service. Note It is not intended to be implemented directly. Use one of its child interfaces instead. |
OfflinePayment | Implement this marker interface if the payment processing is done offline. Examples for this capability are the payment methods cash on delivery and invoice. |
Validate | Implement the capability interface if you need feature methods to validate payment data entered by the user. |
Authorize | Implement the interface if a direct communication with the payment service provider for the payment authorization is needed. In case the payment service supports this type of authorization, it has to implement this interface. |
Capture | Implement the interface if the payment service supports capturing (parts of the) order amount. |
Cancel | Implement the interface if the service supports the cancelation of an authorized payment. |
Reduce | Implement the interface with the payment service if it supports the reduction of the previously authorized payment amount. |
Refund | Implement this interface (providing all functionality required) if a service supports refund of already captured money. |
LimitedTender | The interface marks a payment service so that it handles a limited tender payment instrument (e.g. gift cards). It provides all special functionality required to handle this kind of payment instrument. |
RedirectingPayment | The interface RedirectingPayment is the base capability for the special form of payment services that require a redirect (before/after checkout/fast checkout) to the payment service provider.Note It is not intended to be implemented directly. Use one of its child interfaces instead. |
RedirectBeforeCheckout | This capability interface, derived from RedirectingPayment , marks its implementing service so that it implements the Redirect Before Checkout handling. Since the redirect to the PSP is done before order creation, an additional authorization request after order creation is required. To ensure the implementing service provides the additionally needed functionality, the interface extends the Authorize interface. |
FastCheckout | The interface extends the capability
RedirectBeforeCheckout
and marks the implementing payment service so that it supports fast checkout. All data required for completing the order are delivered by the PSP. Similar to the RedirectBeforeCheckout the redirect is done before order creation and an extra direct authorization call is required. |
RedirectAfterCheckout | The RedirectAfterCheckout extends the RedirectingPayment capability. It is a marker interface for all payment services which implement the Redirect After Checkout communication workflow. It does not provide own methods. |
HostedPaymentPage | Implement the capability interface if you need to configure the integration of payment processing provided by the PSP depending on the current context. Note Without implementation there is still the possibility to use the ISML extension points in the inSPIRED storefront, but without direct access to some configuration values. Available with 7.10.16 or higher |
NotificationRouting | Implement the capability interface if you need enhanced support for notifications. If no implementation is provided, the standard notification handling (based on payment transaction state and history) is used. Available with 7.10.16 or higher |
Result
object which holds the general response state, lists for collecting errors and warnings during the processing. Furthermore, it holds a capability-specific payload of the result. Besides common request-specific parameters (e.g., transaction ID) such a payload provides the possibility to add custom attributes.During checkout the authorization is done using a direct call to the payment provider. All other types of direct communication with the payment provider can be done in the order history. In general, these are Capture, Cancel, Reduce, Refund. It depends on the payment method and the supported types. Direct calls are always triggered by the merchant site (web shop, ERP System, merchant's back office).
The capability interface RedirectBeforeCheckout
, derived from RedirectingPayment
, designates its implementing service, so that it implements the Redirect Before Checkout handling. Since the redirect to the PSP is done before order creation, an additional authorization request after order creation is required. The interface extends the Authorize
interface to ensure that the implementing service provides the additionally needed functionality.
The process flow for payment services implementing redirection depends on the fact whether the PSP finally calls the callback with a HTTP POST request, including additional data in the request message's body. This might be data, in XML, JSON, or an arbitrary format, PSP wants to transfer back to the PSC as a result to the redirect request. However, most PSPs only pass result data via HTTP request parameters to the PSC. To honor various scenarios, the Payment Framework supports different process flows.
They also depend on what kind of storefront is in use. The Payment Framework is completely data driven and supports both, REST-based clients as well as a Responsive Storefront (using pipelines).
In this scenario the REST client (e.g., PWA) is in charge of preparing the data in a way that they can be handed over to ICM in a PATCH request onto the used payment. The following diagram illustrates the process flow exemplarily for the success scenario (the failure and cancel scenarios are omitted for the sake of clarity, process flows are identical to the illustrated scenario):
Step | Actor(s) | Action | Description |
---|---|---|---|
1. | Browser | Buyer selects payment method supporting redirection before checkout and continues checkout workflow. | Example: 3DSecure (VisaCard, MasterCard) |
2. | REST client (PWA) | The REST client prepares the payment method data and assigns them to the basket. | The REST client does the request PUT /baskets/{BasketKey}/payments/{BasketPaymentKey} to assign the payment. When the payload contains all information needed for creating the redirect URL, the process continues as described in the following steps. Otherwise, the basket validation may report back a missing redirect, when it is executed next time. |
3. | ICM | Payment Framework requests PSC for getting the URL to the PSP. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectBeforeCheckout createRedirectURL(context:PaymentContext, payable:Payable, success:URI, cancel:URI, failure:URI):Result<RedirectURLCreationResult> implemented by the PSC. This method assembles the URI to the PSP from the following input parameters:
ICM uses the returned URI to initiate redirection to PSP using the buyer's web browser. The following data have to be included by the PSC in the resulting redirect URI to PSP in the format of HTTP query parameters:
|
4 | Browser | Browser redirects buyer to a web page of the PSP. | Example: 3DSecure web site provided by VISA. |
5. | PSP | PSP collects required payment instrument data from the buyer. | This process may finish successfully or cause errors for any reason, e.g., in case of invalid data entered by the buyer. Furthermore, the buyer may cancel the process. Example: Request user to enter personal 3DSecure verification code on PSP's Web site. |
6. | PSP | PSP redirects buyer back to the REST client. | PSP redirects the buyer back to the shop site by choosing one of the three callbacks, depending on the result of the payment processing in step #5 |
7. | REST client (PWA) | The REST client extracts the parameter from PSP's redirect request. | The REST client extracts the parameter from PSP's redirect request (see step #3), whereas the following parameters are mandatory:
All other HTTP query parameters from PSP's redirect request are extracted in:
The extracted data are transferred to ICM via a PATCH request PATCH /baskets/{BasketKey}/payments/{BasketPaymentKey} so they can be used to perform the payment authorization when the order is submitted later. Note The Payment Framework does not interpret the result of PSP's payment processing in any manner in this step. |
8. | ICM | Result of PSP's payment processing is processed by the PSC. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectBeforeCheckout onCallback(context:PaymentContext, payable:Payable, status:EnumRedirectResultStatus, parameters:PaymentParameters):Result<CallbackResult> implemented by the PSC. Based on the parameters provided in the method call, the PSC continues the processing. The parameters' method parameter contains all HTTP query parameters included in the callback URI (see step #7). In case information should be stored in the payment history, the returned The outcome is wrapped and returned to the REST client. |
9. | REST client (PWA) | The REST client continues the process flow depending on the Success/Failure/Cancel outcome. | |
10. | Browser |
In this case the PSP only passes result data via HTTP request parameters to the PSC. This means that PSC does not require a callback pipeline at all, because all request parameters are provided to the PSC by the Payment Framework. The following diagram illustrates the process flow exemplarily for the success scenario:
Step | Actor(s) | Action | Description |
---|---|---|---|
1. | Browser | Buyer selects payment method supporting redirection before checkout and continues checkout workflow. | Example: 3DSecure (VisaCard, MasterCard) |
2. | Intershop 7 | Payment Framework requests PSC for getting the URL to the PSP. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectBeforeCheckout createRedirectURL(context:PaymentContext, payable:Payable, success:URI, cancel:URI, failure:URI):Result<RedirectURLCreationResult> implemented by the PSC. This method assembles the URI to the PSP from the following input parameters:
Intershop 7 uses the returned URI to initiate redirection to PSP using the buyer's web browser. The following data have to be included by the PSC in the resulting redirect URI to PSP in the format of HTTP query parameters:
|
3. | Browser | Browser redirects buyer to a web page of the PSP. | Example: 3DSecure web site provided by VISA. |
4. | PSP | PSP collects required payment instrument data from the buyer. | This process may finish successfully or cause errors for any reason, e.g., in case of invalid data entered by the buyer. Furthermore, the buyer may cancel the process. Example: Request user to enter personal 3DSecure verification code on PSP's web site. |
5. | PSP | PSP redirects buyer back to Intershop 7. | PSP redirects the buyer back to Intershop 7 shop site by choosing one of the three callback pipelines, depending on the result of the payment processing in step #4. The callback pipeline extracts the HTTP query parameter from PSP's redirect request (see step #2), whereas the following parameters are mandatory:
All other HTTP query parameters from PSP's redirect request are extracted in:
Note The Payment Framework does not interpret the result of PSP's payment processing in any manner in this step. |
6. | PSC | Result of PSP's payment processing is processed by the PSC. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectBeforeCheckout onCallback(context:PaymentContext, payable:Payable, status:EnumRedirectResultStatus, parameters:PaymentParameters):Result<CallbackResult> implemented by the PSC. PSC analyzes the result of PSP's payment processing based on the provided method parameters. The parameters' method parameter contains all HTTP query parameters included in the callback URI (see step #5). In case information should be stored in the payment history, the returned |
7. | Intershop 7 | Intershop 7 payment Success/Failure/Cancel callback pipeline calls the target pipeline addressed by the jumpTarget (see step #5). | |
8. | Browser |
In this case the PSP passes additional result data via HTTP POST request to the PSC. The PSC may define its own callback pipelines. The following diagram illustrates the process flow exemplarily for the success scenario (the failure and cancel scenarios are omitted for the sake of clarity, process flows are identical to the illustrated scenario):
Step | Actor(s) | Action | Description |
---|---|---|---|
1. | Browser | Buyer selects payment method supporting redirection before checkout and continues checkout workflow. | Example: 3DSecure (VisaCard, MasterCard) |
2. | Intershop 7 | Payment Framework requests PSC for getting the URL to the PSP. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectBeforeCheckout createRedirectURL(context:PaymentContext, payable:Payable, success:URI, cancel:URI, failure:URI):Result<RedirectURLCreationResult> implemented by the PSC. This method assembles the URI to the PSP from the following input parameters:
Intershop 7 uses the returned URI to initiate the redirection to PSP using the buyer's web browser. The following data have to be included by the PSC in the resulting redirect URI to PSP in the format of HTTP query parameters:
Note In this scenario PSC assembles the URI for requesting PSP by including its own success/failure/cancel callback URIs in the HTTP query parameters, because the PSP directly redirects to the callback pipelines of PSC after payment processing (see step #5). It is not specified how PSC deals with Intershop 7's Callback On Redirect Before Checkout pipelines provided as parameters in the course of above's |
3. | Browser | Browser redirects buyer to a web page of the PSP. | Example: 3DSecure web site provided by VISA. |
4. | PSP | PSP collects required payment instrument data from the buyer. | This process may finish successfully or cause errors for any reason, e.g., in case of invalid data entered by the buyer. Furthermore, the buyer may cancel the process. Example: Request user to enter personal 3DSecure verification code on PSP's web site. |
5. | PSP | PSP redirects buyer back to the PSC. | PSP redirects buyer back to PSC by choosing one of the three callback pipelines, depending on the result of the payment processing in step #4 |
6. | PSC | PSC processes data provided by PSP. | The PSC may process form data attached at HTTP request by PSP, e.g., data in XML or JSON format. |
7. | PSC | PSC redirects buyer back to Intershop 7. | PSC redirects buyer back to Intershop 7 by choosing one of the three callback pipelines, depending on the result of the payment processing in step #4 and #6. The callback pipeline extracts the HTTP query parameter from PSP's redirect request (see step #2), whereas the following parameters are mandatory:
All other HTTP query parameters from PSP's redirect request are extracted in:
Note The Payment Framework does not interpret the result of PSP's payment processing in any manner in this step. |
8. | PSC | Result of PSP's payment processing is processed by the PSC. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectBeforeCheckout onCallback(context:PaymentContext, payable:Payable, status:EnumRedirectResultStatus, parameters:PaymentParameters):Result<CallbackResult> implemented by the PSC. PSC analyzes the result of PSP's payment processing based on the provided method parameters. The parameters' method parameter contains all HTTP query parameters included in the callback URI (see step #5). In case information should be stored in the payment history, the returned |
9. | Intershop 7 | The Intershop 7 payment Success/Failure/Cancel callback pipeline calls the target pipeline addressed by the jumpTarget (see step #5). | |
10. | Browser |
The RedirectAfterCheckout
extends the RedirectingPayment
capability. It is a marker interface for all payment services which implement the Redirect After Checkout communication workflow, which is also known as Redirect for Authorization. It provides one own method isCapturingAuthorization()
which returns false
by default. The redirect to the PSP is done for authorizing the payment during the order creation process.
The process flow for payment services implementing redirection depends on the fact whether the PSP finally calls the callback with a HTTP POST request, including additional data in the request message's body. This might be data, in XML, JSON, or an arbitrary format, PSP wants to transfer back to the PSC as a result to the redirect request. However, most PSPs only pass result data via HTTP request parameters to the PSC. To honor various scenarios, the Payment Framework supports different process flows.
They also depend on what kind of storefront is in use. The Payment Framework is completely data driven and supports both, REST-based clients as well as a Responsive Storefront (using pipelines).
As in the redirect before checkout, the REST client (e.g., PWA) is in charge of preparing the data in a way that they can be handed over to ICM in a PATCH request onto the used payment. The following diagram illustrates the process flow exemplarily for the success scenario (the failure and cancel scenarios are omitted for the sake of clarity, process flows are identical to the illustrated scenario):
Step | Actor(s) | Action | Description |
---|---|---|---|
1. | Browser | Buyer selects payment method supporting redirection after checkout, continues checkout workflow, and finally submits the order. | Example: ISH OnlinePay |
2. | REST client (PWA) | The REST client prepares and submits the order data (incl. redirect URIs). | The REST client does the request POST /orders to assign the payment. When the payload contains all information needed for creating the redirect URL, the process continues as described in the following steps. Otherwise, the order creation is interrupted and reports a missing redirect. In such a case the process can be continued by PATCH on that order request which provides the required parameter. |
3. | ICM | Payment Framework requests PSC for getting the URL to the PSP. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectAfterCheckout createRedirectURL(context:PaymentContext, payable:Payable, success:URI, cancel:URI, failure:URI):Result<RedirectURLCreationResult> implemented by the PSC. This method assembles the URI to the PSP from the following input parameters:
ICM uses the returned URI to initiate redirection to PSP using the buyer's web browser. The following data have to be included by the PSC in the resulting redirect URI to PSP in the format of HTTP query parameters:
|
4. | Browser | Browser redirects buyer to a web page of the PSP. | Example: ISH OnlinePay authentication page |
5. | PSP | PSP collects required payment instrument data from the buyer. | This process may finish successfully or cause errors for any reason, e.g., in case of invalid data entered by the buyer. Furthermore, the buyer may cancel the process. Example: Request user to enter personal credentials on PSP's web site. |
6. | PSP | PSP redirects buyer back to the shop. | PSP redirects the buyer back to the Intershop 7 shop site by choosing one of the three callback pipelines, depending on the result of the payment processing in step #5. |
7. | REST client (PWA) | The REST client extracts the parameter from PSP's redirect request (see step #3), whereas the following parameters are mandatory:
All other HTTP query parameters from PSP's redirect request are extracted in:
The extracted data are transferred to ICM to complete the payment authorization. PATCH /orders/{OrderKey} Note The Payment Framework does not interpret the result of PSP's payment processing in any manner in this step. | |
8. | ICM | Result of PSP's payment processing is processed by the PSC. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectAfterCheckout onCallback(context:PaymentContext, payable:Payable, status:EnumRedirectResultStatus, parameters:PaymentParameters):Result< RedirectAfterCheckoutCallbackResult> implemented by the PSC. Based on the parameters provided in the method call, the PSC analyzes the result and continues the processing. The parameters' method parameter contains all data included in the callback (see step #7). In case information should be stored in the payment history, the returned If the PSP does not immediately return the final result of the authorization redirect, an asynchronous push notification is required to complete the transaction. In the meantime the transaction state has to be set to PENDING, which is triggered by setting the state of the The outcome is wrapped and returned to the REST client. |
9. | REST client (PWA) | The REST client continues the process flow depending on the Success/Failure/Cancel outcome. | |
10. | Browser |
Similar to the handling in the redirect before checkout, the PSP only passes result data via HTTP request parameters to the PSC. This means that PSC does not require any callback pipeline at all, because all request parameters are provided to the PSC by the Payment Framework. The following diagram illustrates the process flow exemplarily for the success scenario (the failure and cancel scenarios are omitted for the sake of clarity, process flows are identical to the illustrated scenario):
Step | Actor(s) | Action | Description |
---|---|---|---|
1. | Browser | Buyer selects payment method supporting redirection after checkout, continues checkout workflow, and finally submits the order. | Example: ISH OnlinePay |
2. | Intershop 7 | Payment Framework requests PSC for getting the URL to the PSP. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectAfterCheckout createRedirectURL(context:PaymentContext, payable:Payable, success:URI, cancel:URI, failure:URI):Result<RedirectURLCreationResult> implemented by the PSC. This method assembles the URI to the PSP from the following input parameters:
Intershop 7 uses the returned URI to initiate redirection to PSP using the buyer's web browser. The following data have to be included by the PSC in the resulting redirect URI to PSP in the format of HTTP query parameters:
|
3. | Browser | Browser redirects buyer to a web page of the PSP. | Example: ISH OnlinePay authentication page |
4. | PSP | PSP collects required payment instrument data from the buyer. | This process may finish successfully or cause errors for any reason, e.g., in case of invalid data entered by the buyer. Furthermore, the buyer may cancel the process. Example: Request user to enter personal credentials on PSP's web site. |
5. | PSP | PSP redirects buyer back to Intershop 7. | PSP redirects the buyer back to the Intershop 7 shop site by choosing one of the three callback pipelines, depending on the result of the payment processing in step #4. The callback pipeline extracts the HTTP query parameter from PSP's redirect request (see step #2), whereas the following parameters are mandatory:
All other HTTP query parameters from PSP's redirect request are extracted in:
Note The Payment Framework does not interpret the result of PSP's payment processing in any manner in this step. |
6. | PSC | Result of PSP's payment processing is processed by the PSC. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectAfterCheckout onCallback(context:PaymentContext, payable:Payable, status:EnumRedirectResultStatus, parameters:PaymentParameters):Result< RedirectAfterCheckoutCallbackResult> implemented by the PSC. PSC analyzes the result of PSP's payment processing based on the provided method parameters. The parameters' method parameter contains all HTTP query parameters included in the callback URI (see step #5). In case information should be stored in the payment history, the returned If the PSP does not immediately return the final result of the authorization redirect, an asynchronous push notification is required to complete the transaction. In the meantime the transaction state has to be set to PENDING, which is triggered by setting the state of the |
7. | Intershop 7 | Intershop 7 payment Success/Failure/Cancel callback pipeline calls the target pipeline addressed by the jumpTarget (see step #5). | |
8. | Browser |
In case the PSP needs to pass additional result data via HTTP POST request to the PSC, the PSC may define its own callback pipelines. The following diagram illustrates the process flow exemplarily for the success scenario (the failure and cancel scenarios are omitted for the sake of clarity, process flows are identical to the illustrated scenario):
Step | Actor(s) | Action | Description |
---|---|---|---|
1. | Browser | Buyer selects payment method supporting redirection after checkout, continues checkout workflow, and finally submits the order. | Example: ISH OnlinePay |
2. | Intershop 7 | Payment Framework requests PSC for getting the URL to the PSP. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectAfterCheckout createRedirectURL(context:PaymentContext, payable:Payable, success:URI, cancel:URI, failure:URI):Result<RedirectURLCreationResult> implemented by the PSC. This method assembles the URI to the PSP from the following input parameters:
Intershop 7 uses returned URI to initiate redirection to PSP using the buyer's web browser. The following data have to be included by the PSC in the resulting redirect URI to PSP in the format of HTTP query parameters:
Note In this scenario PSC assembles the URI for requesting PSP by including its own success/failure/cancel callback URIs in the HTTP query parameters, because the PSP directly redirects to the callback pipelines of PSC after payment processing (see step #5). It is not specified how PSC deals with Intershop 7's Callback On Redirect After Checkout pipelines provided as parameters in the course of above's |
3. | Browser | Browser redirects buyer to a web page of the PSP. | Example: ISH OnlinePay authentication page |
4. | PSP | PSP collects required payment instrument data from the buyer. | This process may finish successfully or cause errors for any reason, e.g., in case of a failed authentication of the buyer. Furthermore, the buyer may cancel the process. Example: Request user to enter personal credentials on PSP's web site and authorize the merchant to withdraw the order amount from the buyer's account. |
5. | PSP | PSP redirects buyer back to the PSC. | PSP redirects buyer back to PSC by choosing one of the three callback pipelines, depending on the result of the payment processing in step #4 |
6. | PSC | PSC processes data provided by PSP. | The PSC may process form data attached at HTTP request by PSP, e.g., data in XML or JSON format. |
7. | PSC | PSC redirects buyer back to Intershop 7. | PSC redirects buyer back to Intershop 7 by choosing one of the three callback pipelines, depending on the result of the payment processing in step #4 and #6. The callback pipeline extracts the HTTP query parameter from PSP's redirect request (see step #2), whereas the following parameters are mandatory:
All other HTTP query parameters from PSP's redirect request are extracted in:
Note The Payment Framework does not interpret the result of PSP's payment processing in any manner in this step. |
8. | PSC | Result of PSP's payment processing is processed by the PSC. | The Payment Framework calls the method: com.intershop.api.service.payment.v1.capability.RedirectAfterCheckout onCallback(context:PaymentContext, payable:Payable, status:EnumRedirectResultStatus, parameters:PaymentParameters):Result< RedirectAfterCheckoutCallbackResult > implemented by the PSC. PSC analyzes the result of PSP's payment processing based on the provided method parameters. The parameters' method parameter contains all HTTP query parameters included in the callback URI (see step #5). In case information should be stored in the payment history, the returned When the PSP does not immediately return the final result of the authorization redirect, an asynchronous push notification is required to complete the transaction. In the meantime the transaction state has to be set to PENDING which is triggered by setting the state of the |
9. | Intershop 7 | Intershop 7 payment Success/Failure/Cancel callback pipeline calls the target pipeline addressed by the jumpTarget (see step #5). | |
10. | Browser |
LimitedTender
.Result<ApplicabilityResult> getApplicability(Payable payable)
amountForPayment
of the open tender payment method needs to be reduced in that case.DistributeBasketTotalAmountRule
. The rule is executed whenever the basket calculation process takes place. It determines the amounts for each payment instrument. These amounts might be refined by the next rule that handles payment costs and payment taxes, but the basic distribution of the full basket amount happens in this specific rule.The Implementation of the DistributeBasketTotalAmountRule
has the following properties and behavior:tenderBalance
attribute) available for payment.DeleteObsoletePIIs
.PaymentAuthorizationStrategy
class.This provider class has the following interface:List<PaymentTransaction>
determineAuthorizationSequence(Order order)
CANCELED
. The order must be kept as a reference point for the payment transactions and their payment history objects. The inventory service needs to roll back any reservations. The authorization error of the payment transaction that caused the failing authorization will be displayed.The following steps will be carried out:isCapturingAuthorization() == false
)isCapturingAuthorization() == true
)PT_AUTHORIZATIONVOID_FAILED
PT_REFUND_FAILED
Status Name | Description |
---|---|
Created | The PaymentTransaction has been newly created and was not yet processed in any way. |
Authorized | The PaymentTransaction has been authorized. |
Partially Captured | The PaymentTransaction has been captured partly but not completely. |
Captured | The PaymentTransaction has been captured completely. |
Authorization Voided | The PaymentTransaction was either previously authorized and this status has now been voided (canceled), or an authorization attempt failed. |
Capture Voided | The PaymentTransaction was previously captured and this status has now been voided or there were several attempts to capture it, all of which failed and the system does not try any longer.This is a final state.By default this status is only used when an authorization with AutoCapture is set to failed via notification. |
Marked | The PaymentTransaction has been marked for batch settlement. |
Settled | The PaymentTransaction which was previously marked for batch settlement has been confirmed as settled. |
Refunded | The PaymentTransaction has been partially or fully refunded. |
Authorization Void Failed | The PaymentTransaction cancelation (or reduction) was not successful. |
Refund failed | The PaymentTransaction refund has failed. |
Manual Capture | Target State | |||||||
---|---|---|---|---|---|---|---|---|
Created | Authorized | Partially Captured | Captured | Authorization Voided | Capture Voided | Refunded | ||
Source State | Created | |||||||
Authorized | ||||||||
Partially Captured | ||||||||
Captured | ||||||||
Refunded |
Auto Capture | Target State | |||||||
---|---|---|---|---|---|---|---|---|
Created | Authorized | Partially Captured | Captured | Authorization Voided | Capture Voided | Refunded | ||
Source State | Created | |||||||
Captured | ||||||||
Refunded |
Pending Flag of Target State: Captured | ||||
---|---|---|---|---|
Pending | Not Pending | |||
Source State (incl. Pending Flag) | Created | - | ||
Authorized | Pending | |||
Not Pending | ||||
Partially Captured | Pending | |||
Not Pending | ||||
Captured | Pending |
HostedPaymentPage
provides three functions for requesting content from the ICM server. Since two of them have a default implementation, only one has to be implemented. In case the PSC implements the capability, the REST Framework uses the new functionality to collect all the content and to provide the data to the client when payment data are requested. The result of the getContent(PaymentContext, Payable)
is of type Map<String, Object>
to not limit the handling to much. The implementer only has to keep in mind that the values must be ready for use so that they can be sent to the client (via REST).The capability can then be accessed in the storefront (ISML extension in inSPIRED or own component in PWA) for configuring the PSP provided functions.Feature | Callback Only | Callback Before Notification | Notification Before Callback | Notification Only |
---|---|---|---|---|
Authorize(incl. RedirectBeforeCheckout / FastCheckout) | (S2S communication is always started on ICM side and this use case is pretty unlikely) | (S2S communication is always started on ICM side) | ||
RedirectAfterCheckout | (Action started on ICM side, but user waits too long before returning to shop) | (Action started on ICM side, but user never returns to shop) | ||
Capture | (S2S communication is always started on ICM side and this use cases are pretty unlikely) | |||
Cancel | ||||
Reduce | ||||
Refund |
serviceTransactionID
of the PSP is not always sufficient here.) Of course, the framework cannot know anything about never received notifications. To avoid invalid states, the current status has to be retrieved from the leading system (PSP). A trigger for such a status sync could be a notification.