public function execute($request)
    {
        RequestNotSupportedException::assertSupports($this, $request);

        /** @var GetStatusInterface $request */

        $model = ArrayObject::ensureArrayObject($request->getModel());

        if (false == $model['transaction_id']) {
            $request->markNew();
            return;
        }

        if (false != $responseCode = $model['response_code']) {
            // Success
            if ('00' === $responseCode) {
                $request->markCaptured();
                return;
            }
            // Cancelled by user
            if ('17' === $responseCode) {
                $request->markCanceled();
                return;
            }
            // Failure
            $request->markFailed();
            return;
        }

        $request->markPending();
    }
public function execute($request)
    {
        RequestNotSupportedException::assertSupports($this, $request);

        /** @var GetStatusInterface $request */

        $model = ArrayObject::ensureArrayObject($request->getModel());

        if (false == $model['transaction_id']) {
            $request->markNew();
            return;
        }

        if (false != $responseCode = $model['response_code']) {
            // Success
            if ('00' === $responseCode) {
                $request->markCaptured();
                return;
            }
            // Cancelled by user
            if ('17' === $responseCode) {
                $request->markCanceled();
                return;
            }
            // Failure
            $request->markFailed();
            return;
        }

        $request->markPending();
    }
{@inheritdoc}