santigraviano / laravel-mercadopago by santigraviano

Mercado Pago SDK v0.5.2 for Laravel
126,338
47
9
Package Data
Maintainer Username: santigraviano
Maintainer Contact: santiago.graviano@gmail.com (Santiago Graviano)
Package Create Date: 2016-03-15
Package Last Update: 2024-02-19
Language: PHP
License: MIT
Last Refreshed: 2024-11-22 03:13:16
Package Statistics
Total Downloads: 126,338
Monthly Downloads: 2,383
Daily Downloads: 121
Total Stars: 47
Total Watchers: 9
Total Forks: 25
Total Open Issues: 16

Laravel Facade para MercadoPago v0.5.2

La compatibilidad con Laravel 5.3 fue probada con exito por kikemarto

Instalación

composer require santigraviano/laravel-mercadopago

Dentro de config/app.php agregar los siguientes Provider y Alias

Provider

'providers' => [
  // Otros Providers...
  SantiGraviano\LaravelMercadoPago\Providers\MercadoPagoServiceProvider::class,
  /*
   * Application Service Providers...
   */
],

Alias

'aliases' => [
  // Otros Aliases
  'MP' => SantiGraviano\LaravelMercadoPago\Facades\MP::class,
],

Configuración

Antes de configurar el APP ID y APP SECRET, ejecutar el siguiente comando:

php artisan vendor:publish

Despues de haber ejecutado el comando, ir al archivo .env y agregar los campos MP_APP_ID y MP_APP_SECRET con los correspondientes valores de los CLIENT_ID y CLIENT_SECRET de tu aplicacion de MercadoPago.

Para saber cuales son tus datos CLIENT_ID y CLIENT_SECRET podes ingresar aqui, dependiendo de tu país:

Si no deseas usar el archivo .env, ir a config/mercadopago.php y agregar tus datos de aplicación correspondientes.

return [
	'app_id'     => env('MP_APP_ID', 'TU CLIENT ID AQUI'),
	'app_secret' => env('MP_APP_SECRET', 'TU CLIENT SECRET AQUI')
];

Como utilizar

En este ejemplo vamos a crear una preferencia de pago, usando la Facade MP

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use MP;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MercadoPagoController extends Controller
{
  public function getCreatePreference()
  {
  	$preferenceData = [
  		'items' => [
  			[
  				'id' => 12,
  				'category_id' => 'phones',
  				'title' => 'iPhone 6',
  				'description' => 'iPhone 6 de 64gb nuevo',
  				'picture_url' => 'http://d243u7pon29hni.cloudfront.net/images/products/iphone-6-dorado-128-gb-red-4g-8-mpx-1256254%20(1)_m.png',
  				'quantity' => 1,
  				'currency_id' => 'ARS',
  				'unit_price' => 14999
  			]
  		],
  	];

  	$preference = MP::create_preference($preferenceData);

  	return dd($preference);

  }

En este ejemplo vamos a crear una subscripción (débito automático), usando la Facade MP

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use MP;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MercadoPagoController extends Controller
{
  public function getCreatePreapproval()
  {
    $preapproval_data = [
      'payer_email' => 'agariobadcell@gmail.com',
      'back_url' => 'http://labhor.com.ar/laravel/public/preapproval',
      'reason' => 'Subscripción a paquete premium',
      'external_reference' => $subscription->id,
      'auto_recurring' => [
        'frequency' => 1,
        'frequency_type' => 'months',
        'transaction_amount' => 99,
        'currency_id' => 'ARS',
        'start_date' => Carbon::now()->addHour()->format('Y-m-d\TH:i:s.BP'),
        'end_date' => Carbon::now()->addMonth()->format('Y-m-d\TH:i:s.BP'),
      ],
    ];

    MP::create_preapproval_payment($preapproval_data);

    return dd($preapproval);
  }

En el ejemplo se puede ver el uso de la libreria Carbon, para especificar la fecha de comienzo de la subscripción y el termino de la misma, siendo de frecuencia mensual.

A la fecha actual, via Carbon se le agrega una hora, ya que de otra manera MercadoPago puede dar la fecha como pasada.