Payum/paypal checkout : что делать после перенаправления меня на выполненное действие

Я пытаюсь использовать решение payum для интеграции PayPal Checkout на свой веб-сайт.

Шаг 1 : Страница оплаты с проверкой запускает перенаправление на PayPal : OK Шаг 2 : Пользователь использует свои учетные данные для входа и авторизации платежа : OK

Шаг 3: Пользователь правильно перенаправляется на мой doneAction с правильным токеном. Статус токена "захвачен": OK

Шаг 4: Я понятия не имею, что делать дальше, чтобы подтвердить платеж. Я понимаю, что я должен подтвердить платеж, но как?

Ниже приведено мое действие doneAction, основанное на документе payum:

public function doneAction(Request $request){
        $token = $this->get('payum.security.http_request_verifier')->verify($request);

        $gateway = $this->get('payum')->getGateway($token->getGatewayName());

        $gateway->execute($status = new GetHumanStatus($token));
        //die(dump($status->isCaptured()));
        $payment = $status->getFirstModel();

        if ($status->isCaptured()) {
             // What to do here
        }

        return new JsonResponse(array(
            'status' => $status->getValue(),
            'payment' => array(
                'total_amount' => $payment->getTotalAmount(),
                'currency_code' => $payment->getCurrencyCode(),
                'details' => $payment->getDetails(),
            ),
        ));
    }

Спасибо за чтение.


person MatMouth    schedule 08.10.2015    source источник


Ответы (1)


В общем, вы должны поместить туда свою бизнес-логику, например

если вы продаете товары, вы должны пометить заказ как оплаченный и уведомить службу доставки об отправке товара.

если ваш клиент заплатил за учетную запись, вы должны включить ее.

если ваш клиент оплатил электронную книгу, вы должны отправить ему ссылку для скачивания

Так что это полностью зависит от того, что туда поставить. Если захвачен статус, равный купленному, делайте свои дела. если это что-то другое, в ожидании, например, действовать в соответствии с этим статусом. failed означает, что пользователь не заплатил, поэтому ничего ему не отправляйте.

У вас нет возврата json, это может быть перенаправление или html-страница с квитанцией и т. д.

person Maksim Kotlyar    schedule 08.10.2015
comment
Спасибо тебе за это. Но я все еще чего-то не понимаю. С Paypal Check, разве мне не нужно отображать кнопку подтверждения на шаге 4? - person MatMouth; 09.10.2015
comment
Показать кнопку подтверждения, по какой причине? оплата уже сделана. - person Maksim Kotlyar; 11.10.2015
comment
@МаксимКотляр, а как быть, если статус ожидающий? Как запросить шлюз, чтобы получить статус? - person EricSonaron; 04.01.2016
comment
Вы должны убедиться, что push-уведомления работают (если шлюз поддерживает). и зарегистрируйте расширение шлюза payum, которое извлекает запрос (необязательно) и получает статус плюс вашу бизнес-логику. - person Maksim Kotlyar; 04.01.2016