Amazon Pay - State Machine
Edit on GitHubThe state machine is different for synchronous and asynchronous flow. Although from status “capture completed” it’s the same and in the state machine, it’s presented as a sub-process.
The state machine for the synchronous flow:
The state machine for the asynchronous flow:
OMS Commands
Here is a list of commands and conditions to support processing of OMS:
Click here for example of injection
<script>
/**
* @param \Spryker\Zed\Kernel\Container $container
*
* @return void
*/
protected function injectAmazonPayCommands(Container $container)
{
$container->extend(
OmsDependencyProvider::COMMAND_PLUGINS,
function (CommandCollectionInterface $commandCollection) {
$commandCollection
->add(new CancelOrderCommandPlugin(), 'AmazonPay/CancelOrder')
->add(new CloseOrderCommandPlugin(), 'AmazonPay/CloseOrder')
->add(new RefundOrderCommandPlugin(), 'AmazonPay/RefundOrder')
->add(new ReauthorizeExpiredOrderCommandPlugin(), 'AmazonPay/ReauthorizeExpiredOrder')
->add(new CaptureCommandPlugin(), 'AmazonPay/Capture')
->add(new UpdateSuspendedOrderCommandPlugin(), 'AmazonPay/UpdateSuspendedOrder')
->add(new UpdateAuthorizationStatusCommandPlugin(), 'AmazonPay/UpdateAuthorizationStatus')
->add(new UpdateCaptureStatusCommandPlugin(), 'AmazonPay/UpdateCaptureStatus')
->add(new UpdateRefundStatusCommandPlugin(), 'AmazonPay/UpdateRefundStatus');
return $commandCollection;
}
);
}
/**
* @param \Spryker\Zed\Kernel\Container $container
*
* @return void
*/
protected function injectAmazonPayConditions(Container $container)
{
$container->extend(OmsDependencyProvider::CONDITION_PLUGINS, function (ConditionCollectionInterface $conditionCollection) {
$conditionCollection
->add(new IsClosedConditionPlugin(), 'AmazonPay/IsClosed')
->add(new IsCloseAllowedConditionPlugin(), 'AmazonPay/IsCloseAllowed')
->add(new IsCancelledConditionPlugin(), 'AmazonPay/IsCancelled')
->add(new IsCancelNotAllowedConditionPlugin(), 'AmazonPay/IsCancelNotAllowed')
->add(new IsCancelledOrderConditionPlugin(), 'AmazonPay/IsOrderCancelled')
->add(new IsOpenConditionPlugin(), 'AmazonPay/IsAuthOpen')
->add(new IsDeclinedConditionPlugin(), 'AmazonPay/IsAuthDeclined')
->add(new IsPendingConditionPlugin(), 'AmazonPay/IsAuthPending')
->add(new IsSuspendedConditionPlugin(), 'AmazonPay/IsAuthSuspended')
->add(new IsAuthExpiredConditionPlugin(), 'AmazonPay/IsAuthExpired')
->add(new IsClosedConditionPlugin(), 'AmazonPay/IsAuthClosed')
->add(new IsAuthTransactionTimedOutConditionPlugin(), 'AmazonPay/IsAuthTransactionTimedOut')
->add(new IsSuspendedConditionPlugin(), 'AmazonPay/IsPaymentMethodChanged')
->add(new IsCompletedConditionPlugin(), 'AmazonPay/IsCaptureCompleted')
->add(new IsDeclinedConditionPlugin(), 'AmazonPay/IsCaptureDeclined')
->add(new IsPendingConditionPlugin(), 'AmazonPay/IsCapturePending')
->add(new IsCompletedConditionPlugin(), 'AmazonPay/IsRefundCompleted')
->add(new IsDeclinedConditionPlugin(), 'AmazonPay/IsRefundDeclined')
->add(new IsPendingConditionPlugin(), 'AmazonPay/IsRefundPending');
return $conditionCollection;
});
}
</script>
Thank you!
For submitting the form