Foros del Web » Programando para Internet » PHP »

Visual pagos en cuenta de mercado pago

Estas en el tema de Visual pagos en cuenta de mercado pago en el foro de PHP en Foros del Web. Hola, disculpen la molestia pero quería preguntar si es posible este requerimiento de una empresa que me pidió investigar el sdk de mercado: "Visualizar los ...
  #1 (permalink)  
Antiguo 01/06/2021, 22:56
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 12 años, 11 meses
Puntos: 6
Visual pagos en cuenta de mercado pago

Hola, disculpen la molestia pero quería preguntar si es posible este requerimiento de una empresa que me pidió investigar el sdk de mercado:

"Visualizar los pagos solicitados y el estado de cada uno de ellos en una pagina que trae la información desde MercadoPago.
Esto puede ser bastante difícil, alcanza con que dado un ID de transacción pueda consultar su estado (si está pagado o pendiente de pago)".

El único es que ellos quieren que el pago realizado con el checkout pro sea visualizado en la misma cuenta del vendedor en mercado pago. Siendo más específico en la parte de actividad de la cuenta.

He investigado que se puede obtener el payment y el preference mediante la url con GET pero está lejos de lo que me piden. Esto es lo que tengo de momento, en caso de que el pago haya sido efectuado:

Código PHP:
Ver original
  1. public function success(){
  2.         $this->updateItems();
  3.         $payid = $_GET["payment_id"];
  4.         //$paytype = $_GET["payment_type"];
  5.         MercadoPago\SDK::setAccessToken('TEST-6451616915373368-042720-2a5cde5a2a4020c3baf46fc94be461db-199806132');
  6.         $payment = $this->createPayment($payid, $paytype);
  7.         //$merchant = MercadoPago\MerchantOrder::find_by_id($_GET["merchant_order_id"]);
  8.         $payer = new MercadoPago\Payer();
  9.         $payer->first_name = "Juan Alberto";
  10.         $payer->last_name = "Ocampo";
  11.         $payer->email = "[email protected]";
  12.         $payment->payer = $payer;
  13.         $payment->save();
  14.         //$preference = MercadoPago\Preference::find_by_id($_GET["preference_id"]);
  15.         //echo "<pre>";
  16.         //var_dump($payment);
  17.         //echo "</pre>";
  18.         //$merchant->save();
  19.         Session::set("msg",Session::msgSuccess("Pago Realizado"));
  20.         $this->redirect("success.php",[
  21.             "payment" => $payment
  22.         ]);
  23.     }

Este es el error que me da:

Cita:
["error":protected]=>
object(MercadoPago\RecuperableError)#147 (4) {
["message"]=>
string(609) "The name of the following parameters is wrong : [date_approved, money_release_date, collector_id, captured, id, payment_type_id, date_last_updated, date_created, status_detail, live_mode, currency_id, card, transaction_details.total_paid_amount, transaction_details.acquirer_reference, transaction_details.installment_amount, transaction_details.net_received_amount, transaction_details.overpaid_amount, transaction_details.external_resource_url, transaction_details.payable_deferral_period, transaction_details.payment_method_reference_id, additional_info.nsu_processadora, additional_info.available_balance]"
["status"]=>
int(400)
["error"]=>
string(11) "bad_request"
["causes"]=>
array(1) {
[0]=>
object(MercadoPago\ErrorCause)#163 (2) {
["code"]=>
int(8)
["description"]=>
string(36) "The name of the parameters is wrong."
}
}
}

Estoy precisando con urgencia tener esto listo.
Espero sus respuestas y saludos.
__________________
Si te interesa, visita mi perfil de Linkedin. Gracias
  #2 (permalink)  
Antiguo 16/06/2021, 17:43
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 2 meses
Puntos: 13
Respuesta: Visual pagos en cuenta de mercado pago

Pues es totalmente posible realizar eso y mucho mas con Mercado Pago.

La API le esta respondiendo que
"Los parámetros no son correctos" esto por el 400, pero faltaría el código numérico que es el que le indica que sucede, no exite el 8 en la lista del api.

Es difícil ayudarlo por que, no tengo información de como ha comenzado el desarrollo, tampoco se si se trata de una integración o de un sistema de pago, pues también puede crear su propio market y usar Mercado Pago.

Lo recomendable es que use composer e instale el sdk oficial, luego cree sus credenciales de prueba. Como tampoco se que sistema operativo esta utilizando no puedo ayudarlo, si usa windows tampoco

si usa alguna distro linux, simplemente instale composer
https://getcomposer.org/download/

inicie el terminal y simplemente ubíquese en el directorio de su proyecto ejemplo:

cd /opt/lampp/htdocs/misyspagos

una vez allí descargue el sdk mercado pago usando (debe tener composer de manera global)

composer require mercadopago/dx-php

hecho esto le creará un directorio vendor con todo lo que necesita, luego solo debe llamar al autoload desde su aplicación ejemplo:

Código PHP:
  <?php
    
require_once 'vendor/autoload.php'//esto cargara el sdk descargado con composer

    
MercadoPagoSDK::setAccessToken("SU_ACCESS_TOKEN_PRUEBAS"); /** SandBox AccessToken */

    
$payment = new MercadoPagoPayment();
    
    
$payment->transaction_amount 350;
    
$payment->token "SU_CARD_TOKEN";
    
$payment->description "Un producto de prueba para TODES!";
    
$payment->installments 1;
    
$payment->payment_method_id "visa";
    
$payment->payer = array(
      
"email" => "[email protected]"
    
);

    
$payment->save();

    echo 
$payment->status;
en fin es un comienzo, puede probar y divertirse

para info sobre el api mercado pago:

https://www.mercadopago.com.ar/devel...i/introduction

para Checkout:

https://www.mercadopago.com.ar/devel...o/introduction

Web Tokenize Checkout :

https://www.mercadopago.com.ar/devel...t/introduction

Buscar un cliente creado ejemplo:
Código PHP:
<?php

  $filters 
= array(
    
"id"=>"4444244444-sLPVs30go6gs4d"
  
);

  
$customers MercadoPagoCustomer::search($filters);
el id puede ser el email del cliente.
la respuesta es un json.

En fin es bastante simple, pero debe tener conocimientos avanzados php, POO, json.
Recuerde que
primero debe crear su cuenta
segundo una aplicación en mercado pago
todas las pruebas deben hacerse via HTTPS las llamadas realizadas a través de HTTP simple y sin autenticación, fallarán.
tercero configure el Access Token en el header Authorization de todas las solicitudes.

toda esta info puede obtenerla aquí:
https://www.mercadopago.com.ar/developers/es/reference

allí encontrara incluso tarjetas de pruebas, pero debe crear su aplicación y darle un nombre dentro de Mercado Pago.

saludo!!

PD: edite como cinco veces!!! escribo re mal no veo cho%%%o necestio lentes jajaja
__________________
Es duro fracasar en algo, pero es mucho peor no haberlo intentado. - Si crees todo lo que lees, mejor no leas -

Última edición por zerpico_01; 16/06/2021 a las 17:57

Etiquetas: mercado, pago, pagos, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:08.