pitervergara
Forum Replies Created
-
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:
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 1 year ago by pitervergara.
- This reply was modified 1 year ago by pitervergara.
Forum: Plugins
In reply to: [Mercado Pago payments for WooCommerce] Pagamentos recusados cart?oEu também tenho esta dúvida. Uso a vers?o mais atual do plugin e a mais atual do Woocommerce. Meus pedidos por cart?o todos s?o recusados. Várias fontes (como a indicada pelo @fabriciobarros10) sugerem que eu deveria “enviar mais informa??es”, entre elas o deviceId.
Eu sei que essa informa??o está sendo coletada pelo plugin do Mercado Pago na página de checkout da minha loja woocommerce, pois se eu abro a console do navegador e confiro, a variável global MP_DEVICE_SESSION_ID está presente e contém um valor. Mas eu n?o tenho certeza de que essa informa??o está de fato sendo enviada ao Mercado Pago.