Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter pitervergara

    (@pitervergara)

    Depois de inspecionar algumas requisi??es, confirmei que a informa??o n?o é enviada.

    Eu confirmei isso observando o método save() do arquivo wp-content/plugins/woocommerce-mercadopago/packages/sdk/src/Common/AbstractEntity.php. Inspecionando a variável $header, é possível ver que embora o cabe?alho x-meli-session-id esteja presente ele n?o contém nenhum valor.

    Isso acontece porque ele é inicializado, no SDK do Mercado Pago, no método getHeaders() do arquivo wp-content/plugins/woocommerce-mercadopago/packages/sdk/src/Entity/Payment/Payment.php e lá o atributo session_id do objeto Payment é nulo.

    Como o atributo é protegido, n?o vejo como populá-lo a partir do plugin. Contudo, o a classe Payment do SDK suporta a adi??o de cabe?alhos customizados que s?o considerados pelo método getHeaders(). Ent?o, com a modifica??o abaixo no código do plugin é possível acrescentar o cabe?alho:

    <?php
    // Arquivo wp-content/plugins/woocommerce-mercadopago/src/Transactions/AbstractPaymentTransaction.php
     
        public function createPayment()
        {
            $payment = $this->getTransaction('Payment');
            
            //// CóDIGO ADICIONADO ////
            $session_id = $this->checkout['session_id'];
            $payment->setCustomHeaders(['x-meli-session-id: ' . $session_id]);
            //// FIM DO CóDIGO ADICIONADO ////
            
            $data = $payment->save();
    

    Isso, entretanto, duplica o cabe?alho x-meli-session-id, já que o SDK n?o deixará de incluí-lo sem valor. Como os headers customizados entram depois, suponho que, ele iria se sobrepor ao valor vazio, já que é um header de Single-Valued, mas n?o tenho certeza de como a API tratará isso.

    Enfim, me parece conveniente que esta informa??o seja enviada nos cabe?alhos da requisi??o e isso n?o acontece hoje. Embora adicionar essa informa??o ali, da maneira como eu fiz, n?o tenha resolvido meu problema original de transa??es recusadas, eu suponho que contribua para solu??o, já que a documenta??o recomenda sua inclus?o:

    Device ID é uma informa??o importante para garantir uma melhor seguran?a e, consequentemente, uma melhor taxa de aprova??o de pagamentos.

    https://www.mercadopago.com.br/developers/pt/docs/checkout-pro/how-tos/improve-payment-approval/recommendations
    • This reply was modified 8 months, 2 weeks ago by pitervergara.
    • This reply was modified 8 months, 2 weeks ago by pitervergara.
    Plugin Author Mercado Pago

    (@mercadopago)

    Olá @pitervergara.

    Este recurso foi adicionado nas últimas vers?es do plugin.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Como confirmar se o ‘deviceId’ está sendo enviado ao Mercado Pago’ is closed to new replies.