Open judgej opened 7 years ago
Since Shop_Frontend
gets its transaction result from the acceptNotification
back channel, it makes sense that this gateway directly supports the acceptNotification()
method. Starting a transaction on Shop_Frontend
API and then switching over to the Shop_Server
API to get the results is unintuitive for us, and totally obscure to the merchant site without some custom handling for this gateway.
So acceptNotification()
will be added to both the ShopClientGateway
and the ShopFrontendGateway
.
acceptNotification()
implemented for all three APIs.
Needs some tests written before a release.
Note that:
acceptNotification()
MUST be used for the Shop_Frontend
API and there are no complete*()
methods.acceptNotification()
MUST be used for the Shop_Client
API, but there are complete*()
methods for convenience but they are not signed and so cannot be trusted.acceptNotification()
MAY be used for the Shop_Server
API as an additional record of the results. Since these are all direct server requests (though with 3D Secure support which MAY require a redirect) the transaction results come direct from the backend direct server calls.For the Shop_Server
API, because there may not be a user redirect involved, the notification request may come from the gateway some time after the transaction result has been returned by the direct server transaction request. The PAYONE documentation will describe the timings and order of the process in more detail.
The
Shop_Frontend API
does not supportcompleteAuthorize()
orcompletePurchase()
. It also does not directly supportacceptNotification()
, which is located in theShop_Server
API.Aimeos uses the capabilities of each API to determine how to handle incoming requests, either from the user returned from a redirect or POST, or an incoming request direct from the gateway (a back-channel request). So this is confusing Aimeos a little, quite rightly.