Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aimeos unable to get result for Shop_Frontend API #20

Open
judgej opened this issue Apr 24, 2017 · 3 comments
Open

Aimeos unable to get result for Shop_Frontend API #20

judgej opened this issue Apr 24, 2017 · 3 comments
Assignees

Comments

@judgej
Copy link
Member

judgej commented Apr 24, 2017

The Shop_Frontend API does not support completeAuthorize() or completePurchase(). It also does not directly support acceptNotification(), which is located in the Shop_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.

@judgej judgej self-assigned this Apr 24, 2017
@judgej
Copy link
Member Author

judgej commented Apr 24, 2017

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.

judgej added a commit that referenced this issue Apr 24, 2017
This allows auto-wiring of Omnipay wrapper frameworks and merchant
sites to correctly determine the capabilities of each API.
@judgej
Copy link
Member Author

judgej commented Apr 24, 2017

acceptNotification() implemented for all three APIs.

Needs some tests written before a release.

@judgej
Copy link
Member Author

judgej commented Apr 24, 2017

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant