Führen Sie den folgenden Befehl aus
composer require gjae/laravel-mercadopago
Fügen Sie in Ihrer Datei config/app.php
die folgenden Zeilen hinzu (NUR FÜR LARAVEL-VERSIONEN <= 5.4):
in Ihrem Dienstanbieter-Array ( Provider ):
Gjae MercadoPago MPServiceProvider::class,
Fügen Sie die folgende Fassade zu Ihrer Aliasliste hinzu (NUR FÜR LARAVEL-VERSIONEN <= 5.4):
' MercadoPago ' => Gjae MercadoPago Facade::class,
Führen Sie abschließend den folgenden Befehl aus:
php artisan vendor:publish -- provider ="Gjae MercadoPago MPServiceProvider "
Und schließlich führen Sie die Migrationen aus:
php artisan migrate
Gehen Sie nun zur Datei config/mercadopago.php
und fügen Sie Ihre Konfiguration hinzu. Ihre Datei sieht etwa so aus:
<?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 ' ,
];
Um mit der Verwendung der Bibliothek zu beginnen, müssen Sie lediglich die MercadoPago-Fassade (oder wie auch immer Sie sie in der Aliase-Anordnung Ihrer config.php
Datei genannt haben) aufrufen und die Methode begin aufrufen, die als Parameter eine Rückruffunktion hat, die die Transaktion selbst empfängt als Parameter, Beispiel:
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 " ]);
});
Die addItem-Methode kann so oft aufgerufen werden, wie Sie es für notwendig halten, um die Artikel hinzuzufügen, die Sie der Zahlung in Rechnung stellen müssen. Zum Schluss noch in Ihrer Antwortansicht
Die initPoint-Methode der MercadoPago-Fassade wird verfügbar sein (Beispiel für einen Ansichtscode):
<!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 >
Die vom Zahlungsgateway zurückgegebenen Antworten müssen über ihre Routen gesteuert und zur Konfigurationsdatei ( config/mercadopago.php
) hinzugefügt werden.
Rufen Sie in den mit der Antwort verknüpften Routen (konfiguriert in der Konfigurationsdatei) die MPResponse-Klasse auf und verwenden Sie die Abhängigkeitsinjektion, um die Antwort zu verarbeiten, Beispiel:
<?php
. . .
use Gjae MercadoPago Contracts MPResponse ;
class MercadoPagoController extends Controller
{
public function successResponse ( MPResponse $ request )
{
. . .
}
}
Das eingefügte MPResponse-Objekt speichert die Antwortdaten automatisch für Sie.
Darüber hinaus können Sie Modelle mit Ihrer Transaktion verknüpfen. Dazu müssen Sie zu Ihrer Eloquent-Modellklasse gehen und die HasTransaction-Schnittstelle und das im Paket enthaltene HasTransactions-Merkmal implementieren:
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;
. . .
}
Nachdem Sie dies getan haben, können Sie als zweiten Parameter an die Funktion begin ein Objekt (oder Array von Objekten) einer beliebigen Klasse übergeben, die die HasTransaction-Schnittstelle implementiert:
MercadoPago:: begin ( function ( $ mp ){
. . .
}, [ $ HasTransactionObjects ]);
Objekte, die die HasTransaction
Schnittstelle und das HasTransactions
Merkmal implementieren, verfügen über die Transaktionserweiterung, die eine Sammlung von Transaktionen zurückgibt, die sich auf das Objekt beziehen:
$ user = App User:: first ();
$ user -> transactions ;
Das MPResponse-Objekt, das in den Controller eingefügt wird, verfügt über die Methode getTransaction, die die Daten der empfangenen Transaktion zurückgibt
public function successResponse ( MPResponse $ request )
{
$ transaction = $ request -> getTransaction ();
}
Wenn in der Konfigurationsdatei die Option „local_debug“ auf „true“ gesetzt ist; Mit der Mercadopago-URL wird kein init_point ausgegeben, damit der Benutzer keine Transaktionen erstellt, die nicht innerhalb des Gateways ausgeführt werden, und den Vorgang ruhig testen kann, ohne unnötig auf Antworten vom Mercadopago-Server warten zu müssen, wenn er dies tut Wenn Sie den vollständigen Betrieb testen möchten, egal ob im Produktions- oder Sandbox-Modus, ändern Sie diese Option auf „False“.