php – MercadoPago Checkout Pro: Como armazenar retorno de status de pagamento usando a API

Estou desenvolvendo uma aplicação que utilizará o Checkout Pro do MercadoPago. Sou leigo nessa área e gostaria de armazenar os status de compra do cliente dentro de uma tabela no MySql. No caso para tentar resolver essa dúvida, estou vendo um artigo do MercadoPago sobre IPN (Instant Payment Notification) porém não estou conseguindo achar um caminho correto para armazenar estas notificações.

A princípio já possuo uma tabela chamada pedidos e dentro dessa tabela criei uma coluna status. Abaixo segue um exemplo da estrutura da mesma:

pedidoID | cliente     | preco  | status
-------------------------------------------
0001     |João José    | 25.00  | Aprovado
0002     |Maria Joana  | 20.00  | Pendente
0003     |Maria Andrade| 30.00  | Cancelado

entretanto, a minha dúvida é como receber este retorno (status) do processo de pagamento do cliente no checkout Pro para que eu possa inserir essa informação conforme no exemplo da tabela acima na coluna status? No artigo citado, o mesmo diz que tenho que criar uma URL conforme abaixo:

www.yoursite.com/notifications

onde no caso criei um arquivo php chamado notifications porém não sei ao certo se seria isso que eu deveria fazer. Abaixo uma explicação a respeito, dentro do artigo de suporte do MercadoPago Checkout Pro:

(Exemplo: Se configurar a URL: www.yoursite.com/notifications, você receberá as notificações de pagamento desta maneira: www.yoursite.com/notifications?topic=payment&id=123456789)

Abaixo, um código em php fornecido pelo artigo de ajuda, onde informa o seguinte:

Implemente o receptor de notificações usando o seguinte código como exemplo:

<?php
    MercadoPagoSDK::setAccessToken("ENV_ACCESS_TOKEN");

    $merchant_order = null;

    switch($_GET("topic")) {
        case "payment":
            $payment = MercadoPagoPayment::find_by_id($_GET("id"));
            // Get the payment and the corresponding merchant_order reported by the IPN.
            $merchant_order = MercadoPagoMerchantOrder::find_by_id($payment->order->id);
            break;
        case "merchant_order":
            $merchant_order = MercadoPagoMerchantOrder::find_by_id($_GET("id"));
            break;
    }

    $paid_amount = 0;
    foreach ($merchant_order->payments as $payment) {   
        if ($payment('status') == 'approved'){
            $paid_amount += $payment('transaction_amount');
        }
    }

    // If the payment's transaction amount is equal (or bigger) than the merchant_order's amount you can release your items
    if($paid_amount >= $merchant_order->total_amount){
        if (count($merchant_order->shipments)>0) { // The merchant_order has shipments
            if($merchant_order->shipments(0)->status == "ready_to_ship") {
                print_r("Totally paid. Print the label and release your item.");
            }
        } else { // The merchant_order don't has any shipments
            print_r("Totally paid. Release your item.");
        }
    } else {
        print_r("Not paid yet. Do not release your item.");
    }

?>

No mais, eu já possuo as credenciais de produção e testes e a dúvida mesmo é saber qual caminho certo eu devo tomar para poder implantar essa informação em minha aplicação? Desde já agradeço a atenção.