laravel-pagseguro consume la API de PagSeguro y proporciona una forma sencilla de generar pagos y notificar sobre sus transacciones.
Antes de utilizar laravel pagseguro es importante verificar que su nombre de usuario de PagSeguro sea correcto para la integración. Siga la URL de configuración de usuario de PagSeguro: https://pagseguro.uol.com.br/preferencias/integracoes.jhtml.
PHP >= 5.4 Laravel 5.x
Abra el archivo composer.json
e ingrese la siguiente declaración:
"require": {
"michael/laravelpagseguro": "dev-master"
}
Nota : para laravel versión 5.1 o inferior, especifique la versión 0.4.1 en lugar de usar dev-master
Luego de insertar laravel pagseguro
en require, debes ejecutar el comando:
composer update
O ejecute el comando:
composer require michael/laravelpagseguro:dev-master
Abra el archivo config/app.php
y agregue la siguiente declaración a la matriz providers
:
laravel pagseguro Platform Laravel5 ServiceProvider::class
En su archivo config/app.php
, agregue la siguiente declaración a la matriz aliases
:
' PagSeguro ' => laravel pagseguro Platform Laravel5 PagSeguro::class
Ahora ejecutarás el comando:
php artisan vendor:publish
Si todo ha ido bien se mostrará el siguiente mensaje:
Copied File [/vendor/michael/laravelpagseguro/src/laravel/pagseguro/Config/laravelpagseguro.php] To [/config/laravelpagseguro.php]
Abre el archivo config/laravelpagseguro.php
y cambia el token
y también el e-mail
informando a tu tienda:
' credentials ' => array ( //SETA AS CREDENCIAIS DE SUA LOJA
' token ' => null ,
' email ' => null ,
)
Si necesitas un proxy para usar laravel pagseguro descomenta y configura la línea del adaptador http:
' http ' => [
' adapter ' => [
' type ' => ' curl ' ,
' options ' => [
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0 ,
// CURLOPT_PROXY => 'http://user:pass@host:port', // PROXY OPTION <<--
]
],
],
La matriz de envío debe ensamblarse con la siguiente estructura:
$ data = [
' items ' => [
[
' id ' => ' 18 ' ,
' description ' => ' Item Um ' ,
' quantity ' => ' 1 ' ,
' amount ' => ' 1.15 ' ,
' weight ' => ' 45 ' ,
' shippingCost ' => ' 3.5 ' ,
' width ' => ' 50 ' ,
' height ' => ' 45 ' ,
' length ' => ' 60 ' ,
],
[
' id ' => ' 19 ' ,
' description ' => ' Item Dois ' ,
' quantity ' => ' 1 ' ,
' amount ' => ' 3.15 ' ,
' weight ' => ' 50 ' ,
' shippingCost ' => ' 8.5 ' ,
' width ' => ' 40 ' ,
' height ' => ' 50 ' ,
' length ' => ' 80 ' ,
],
],
' shipping ' => [
' address ' => [
' postalCode ' => ' 06410030 ' ,
' street ' => ' Rua Leonardo Arruda ' ,
' number ' => ' 12 ' ,
' district ' => ' Jardim dos Camargos ' ,
' city ' => ' Barueri ' ,
' state ' => ' SP ' ,
' country ' => ' BRA ' ,
],
' type ' => 2 ,
' cost ' => 30.4 ,
],
' sender ' => [
' email ' => ' [email protected] ' ,
' name ' => ' Isaque de Souza Barbosa ' ,
' documents ' => [
[
' number ' => ' 01234567890 ' ,
' type ' => ' CPF '
]
],
' phone ' => [
' number ' => ' 985445522 ' ,
' areaCode ' => ' 11 ' ,
],
' bornDate ' => ' 1988-03-21 ' ,
]
];
Una vez que tenga los datos, use el método: createFromArray
para crear el objeto de pago:
$ checkout = PagSeguro:: checkout ()-> createFromArray ( $ data );
Para confirmar el envío utilice el método: send
de la siguiente manera:
$ checkout = PagSeguro:: checkout ()-> createFromArray ( $ data );
$ credentials = PagSeguro:: credentials ()-> get ();
$ information = $ checkout -> send ( $ credentials ); // Retorna um objeto de laravelpagseguroCheckoutInformationInformation
if ( $ information ) {
print_r ( $ information -> getCode ());
print_r ( $ information -> getDate ());
print_r ( $ information -> getLink ());
}
Reportar metadatos de recarga de celular:
// ....
$ data [ ' cellphone_charger ' ] = ' +5511980810000 ' ;
$ checkout = PagSeguro:: checkout ()-> createFromArray ( $ data );
Metadatos de informes para datos de viajes:
// ....
$ data [ ' travel ' ] = [
' passengers ' => [
[
' name ' => ' Isaque de Souza ' ,
' cpf ' => ' 40404040411 ' ,
' passport ' => ' 4564897987 '
],
[
' name ' => ' Michael Douglas ' ,
' cpf ' => ' 80808080822 ' ,
]
],
' origin ' => [
' city ' => ' SAO PAULO - SP ' ,
' airportCode ' => ' CGH ' , // Congonhas
],
' destination ' => [
' city ' => ' RIO DE JANEIRO - RJ ' ,
' airportCode ' => ' SDU ' , // Santos Dumont
]
];
$ checkout = PagSeguro:: checkout ()-> createFromArray ( $ data );
Metadatos de informes para juegos:
// ....
$ data [ ' game ' ] = [
' gameName ' => ' PS LEGEND ' ,
' playerId ' => ' BR561546S4 ' ,
' timeInGameDays ' => 360 ,
];
$ checkout = PagSeguro:: checkout ()-> createFromArray ( $ data );
Para recuperar las credenciales predeterminadas del archivo, puede utilizar:
$ credentials = PagSeguro:: credentials ()-> get ();
O utilizar credenciales alternativas
$ credentials = PagSeguro:: credentials ()-> create ( $ token , $ email );
$ credentials = PagSeguro:: credentials ()-> get ();
$ transaction = PagSeguro:: transaction ()-> get ( $ code , $ credentials );
$ information = $ transaction -> getInformation ();
Crea una ruta POST con el nombre "pagseguro.notification" (Esto está en la configuración)
Route:: post ( ' /pagseguro/notification ' , [
' uses ' => ' laravelpagseguroPlatformLaravel5NotificationController@notification ' ,
' as ' => ' pagseguro.notification ' ,
]);
Registre una devolución de llamada (invocable) en su configuración de laravelpagseguro.php
' routes ' => [
' notification ' => [
' callback ' => [ ' MyNotificationClass ' , ' myMethod ' ], // Callable
' credential ' => ' default ' ,
' route-name ' => ' pagseguro.notification ' , // Nome da rota
],
],
O....
' routes ' => [
' notification ' => [
' callback ' => function ( $ information ) { // Callable
Log:: debug ( print_r ( $ information , 1 ));
},
],
],
En el archivo de configuración debes dejarlo de la siguiente manera:
' notification ' => [
' callback ' => [ ' AppControllersPagSeguroController ' , ' Notification ' ], // Callable callback to Notification function (notificationInfo) : void {}
' credential ' => ' default ' , // Callable resolve credential function (notificationCode) : Credentials {}
' route-name ' => ' pagseguro.notification ' , // Criar uma rota com este nome
],
Y en el controlador debes crear el método, por ejemplo, Notificación:
public static function Notification ( $ information )
{
Log:: debug ( print_r ( $ information -> getStatus ()-> getCode (), 1 ));
}
La creación de un plan de pago recurrente comienza con la creación del plan y para ello debe crear la siguiente matriz:
Si desea ver los objetos de la solicitud: https://dev.pagseguro.uol.com.br/v1.0/reference#criar-plano
$ plan = [
' body ' => [
' reference ' => ' plano laravel pagseguro ' ,
],
' preApproval ' => [
' name ' => ' Plano ouro - mensal ' ,
' charge ' => ' AUTO ' , // outro valor pode ser MANUAL
' period ' => ' MONTHLY ' , //WEEKLY, BIMONTHLY, TRIMONTHLY, SEMIANNUALLY, YEARLY
' amountPerPayment ' => ' 125.00 ' , // obrigatório para o charge AUTO - mais que 1.00, menos que 2000.00
' membershipFee ' => ' 50.00 ' , //opcional - cobrado com primeira parcela
' trialPeriodDuration ' => 30 , //opcional
' details ' => ' Decrição do plano ' , //opcional
' expiration ' => [ // opcional
' value ' => 1 , // obrigatório de 1 a 1000000
' unit ' => ' YEARLY ' , // obrigatório
],
]
];
Y luego debes llamar al método de creación del plan:
$ plan = PagSeguro:: plan ()-> createFromArray ( $ plan );
$ credentials = PagSeguro:: credentials ()-> get ();
$ information = $ plan -> send ( $ credentials ); // Retorna um objeto de laravelpagseguroCheckoutInformationInformation
if ( $ information ) {
print_r ( $ information -> getCode ());
print_r ( $ information -> getDate ());
print_r ( $ information -> getLink ());
}
laravel pagseguro utiliza la licencia MIT, para saber más lee el enlace: Licencia MIT