Exécutez la commande suivante
composer require gjae/laravel-mercadopago
Dans votre fichier config/app.php
ajoutez les lignes suivantes (UNIQUEMENT POUR LES VERSIONS LARAVEL <= 5.4) :
dans votre tableau de fournisseurs de services ( fournisseurs ):
Gjae MercadoPago MPServiceProvider::class,
ajoutez la façade suivante à votre liste d'alias (UNIQUEMENT POUR LES VERSIONS LARAVEL <= 5.4) :
' MercadoPago ' => Gjae MercadoPago Facade::class,
enfin exécutez la commande suivante :
php artisan vendor:publish -- provider ="Gjae MercadoPago MPServiceProvider "
Et enfin lancez les migrations :
php artisan migrate
Allez maintenant dans le fichier config/mercadopago.php
et ajoutez votre configuration, votre fichier ressemblera à ceci :
<?php
return [
/**
* Si es verdadero entonces no se validan las credenciales
* en mercadopago
*/
' local_debug ' => true ,
/**
* Especifica el modo en el que se estara usando
* el mercado pago, : sandbox, production
*/
' mode ' => ' sandbox ' ,
/**
* Credenciales para el caso en que la aplicacion este en modo
* produccion (especificado en la clave mode)
*/
' production ' => [
' access_token ' => env ( ' MP_ACCESS_TOKEN ' , '' ),
' public_key ' => env ( ' MP_PUBLIC_KEY ' , '' ),
],
/**
* Credenciales para el modo sandbox
* especificado el uso en la clave "mode"
*/
' sandbox ' => [
' access_token ' => env ( ' MP_SANDBOX_ACCESS_TOKEN ' , '' ),
' public_key ' => env ( ' MP_SANDBOX_PUBLIC_KEY ' , '' )
],
/**
* Tipo de identificacion usada para los pagos
*/
' identification_type ' => ' DNI ' ,
/**
* Codigo de area telefonico
*/
' area_code ' => '' ,
/**
* Especifica las URL de retorno para el smartcheckout
*/
' back_urls ' => [
' success ' => '' ,
' failure ' => '' ,
' pending ' => '' ,
],
// Indica en que caso de respuesta del pago se ejecutara una autorecarga
// Por defecto: approved (el usuario pagador volvera automaticamente en caso de que el pago haya sido completado y aprobado)
' auto_return ' => ' approved ' ,
];
Pour commencer à utiliser la bibliothèque, il vous suffit d'appeler la façade MercadoPago (ou quel que soit le nom que vous lui avez donné dans la disposition des alias de votre fichier config.php
), en appelant la méthode start qui a en paramètre une fonction de rappel qui recevra la transaction elle-même. en paramètre, exemple :
MercadoPago:: begin ( function ( $ mp ){
// agrega un item al procesamiento
$ mp -> addItem ([
' title ' => ' Prueba ' , // Titulo del item
' qtty ' => 1 , // Cantidad del item
' price ' => 150.0 , // Precio unitario
' currency ' => ' USD ' , // MONEDA USADA PARA PAGAR
' id ' => " MYAWESOMEPRODUCTID " // ID DEL PRODUCTO (PARA CONTROL INTERNO DE SU APLICACIÓN)
]);
// OPCIONAL: el metodo backUrlAddQS agregara parametros adicionales a la URL de pago, dichos parametros seran devueltos al completar la transaccipon
// usado para control interno de su propia aplicación, si desea agregar un token o ID de seguridad a su proceso
$ mp -> backUrlAddQS ([ ' foo ' => " bar " ]);
});
La méthode addItem peut être appelée autant de fois que vous le jugez nécessaire pour ajouter les éléments que vous devez facturer au paiement. Enfin, dans votre vue de réponse
La méthode initPoint de la façade MercadoPago sera disponible (exemple de code de vue) :
<!DOCTYPE html >
< html lang =" en " >
< head >
< meta charset =" UTF-8 " >
< meta name =" viewport " content =" width=device-width, initial-scale=1.0 " >
< meta http-equiv =" X-UA-Compatible " content =" ie=edge " >
< title > Redirigiendo a MercadoPago para procesar su compra </ title >
</ head >
< body >
< input type =" hidden " name =" redirect-mp " id =" mp " value =" {{ MercadoPago::initPoint() }} " >
< script >
window . location = document . getElementById ( 'mp' ) . value
</ script >
</ body >
</ html >
Les réponses renvoyées par la passerelle de paiement doivent être contrôlées depuis leurs routes et ajoutées au fichier de configuration ( config/mercadopago.php
).
Dans les routes associées à la réponse (configurées dans le fichier de configuration), appelez la classe MPResponse et utilisez l'injection de dépendances pour traiter la réponse, exemple :
<?php
. . .
use Gjae MercadoPago Contracts MPResponse ;
class MercadoPagoController extends Controller
{
public function successResponse ( MPResponse $ request )
{
. . .
}
}
L'objet MPResponse injecté enregistrera automatiquement les données de réponse pour vous.
De plus, vous pouvez associer des modèles à votre transaction, pour cela vous devez accéder à votre classe de modèle Eloquent et implémenter l'interface HasTransaction et le trait HasTransactions inclus dans le package :
namespace App ;
. . .
use Illuminate Database Eloquent Model ;
use Gjae MercadoPago Contracts HasTransaction ;
use Gjae MercadoPago Traits HasTransactions ;
class MyAwesomeModel extends Model implements HasTransaction{
use HasTransactions;
. . .
}
Cela fait, vous pouvez passer comme deuxième paramètre à la fonction start, un objet (ou un tableau d'objets) de n'importe quelle classe qui implémente l'interface HasTransaction :
MercadoPago:: begin ( function ( $ mp ){
. . .
}, [ $ HasTransactionObjects ]);
Les objets qui implémentent l'interface HasTransaction
et le trait HasTransactions
ont l'extension transactions qui renvoie une collection de transactions liées audit objet :
$ user = App User:: first ();
$ user -> transactions ;
L'objet MPResponse injecté dans le contrôleur possède la méthode getTransaction qui renvoie les données de la transaction reçue.
public function successResponse ( MPResponse $ request )
{
$ transaction = $ request -> getTransaction ();
}
Lorsque le fichier de configuration a l'option "local_debug" définie sur true ; Un init_point ne sera pas émis avec l'URL de Mercadopago, afin que l'utilisateur ne crée pas de transactions qui ne seront pas effectuées au sein de la passerelle et puisse tester sereinement le fonctionnement sans attendre les réponses du serveur Mercadopago inutilement, lorsqu'il est prêt à tester le fonctionnement complet que ce soit en mode production ou en mode sandbox, changez cette option en false.