laravel-pagseguro consumes the PagSeguro API and provides a simple way to generate payment, and notify about your transactions.
Before you use laravel pagseguro it is important to check that your PagSeguro username is correct for integration. Follow the PagSeguro user configuration URL: https://pagseguro.uol.com.br/preferencias/integracoes.jhtml
PHP >= 5.4 Laravel 5.x
Open the composer.json file and enter the following statement:
"require": {
"michael/laravelpagseguro": "dev-master"
}
Note : For laravel version 5.1 or below, specify version 0.4.1 instead of using dev-master
After inserting laravel pagseguro into require, you must execute the command:
composer update
Or run the command:
composer require michael/laravelpagseguro:dev-master
Open the config/app.php file and add the following statement to the providers array:
laravel pagseguro Platform Laravel5 ServiceProvider::class In your config/app.php file, add the following statement to the aliases array:
' PagSeguro ' => laravel pagseguro Platform Laravel5 PagSeguro::classNow you will run the command:
php artisan vendor:publishIf everything went well, the following message will be displayed:
Copied File [/vendor/michael/laravelpagseguro/src/laravel/pagseguro/Config/laravelpagseguro.php] To [/config/laravelpagseguro.php] Open the config/laravelpagseguro.php file and change the token and also the e-mail informing your store:
' credentials ' => array ( //SETA AS CREDENCIAIS DE SUA LOJA
' token ' => null ,
' email ' => null ,
)If you need a proxy to use laravel pagseguro uncomment and configure the http adapter line:
' http ' => [
' adapter ' => [
' type ' => ' curl ' ,
' options ' => [
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0 ,
// CURLOPT_PROXY => 'http://user:pass@host:port', // PROXY OPTION <<--
]
],
],The sending array must be assembled with the following structure:
$ 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 ' ,
]
]; Once you have the data, use the method: createFromArray to create the checkout object:
$ checkout = PagSeguro:: checkout ()-> createFromArray ( $ data ); To confirm the sending, use the method: send as follows:
$ 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 ());
}Reporting cell phone recharge metadata:
// ....
$ data [ ' cellphone_charger ' ] = ' +5511980810000 ' ;
$ checkout = PagSeguro:: checkout ()-> createFromArray ( $ data );Reporting metadata for Travel Data:
// ....
$ 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 );Reporting metadata for Games:
// ....
$ data [ ' game ' ] = [
' gameName ' => ' PS LEGEND ' ,
' playerId ' => ' BR561546S4 ' ,
' timeInGameDays ' => 360 ,
];
$ checkout = PagSeguro:: checkout ()-> createFromArray ( $ data );To retrieve the default credentials from the file you can use:
$ credentials = PagSeguro:: credentials ()-> get ();Or use alternative credentials
$ credentials = PagSeguro:: credentials ()-> create ( $ token , $ email ); $ credentials = PagSeguro:: credentials ()-> get ();
$ transaction = PagSeguro:: transaction ()-> get ( $ code , $ credentials );
$ information = $ transaction -> getInformation ();Create a POST route with the name "pagseguro.notification" (This is in the config)
Route:: post ( ' /pagseguro/notification ' , [
' uses ' => ' laravelpagseguroPlatformLaravel5NotificationController@notification ' ,
' as ' => ' pagseguro.notification ' ,
]);Register a callback (callable) in your laravelpagseguro.php config
' routes ' => [
' notification ' => [
' callback ' => [ ' MyNotificationClass ' , ' myMethod ' ], // Callable
' credential ' => ' default ' ,
' route-name ' => ' pagseguro.notification ' , // Nome da rota
],
],Or....
' routes ' => [
' notification ' => [
' callback ' => function ( $ information ) { // Callable
Log:: debug ( print_r ( $ information , 1 ));
},
],
],In the configuration file you should leave it as follows:
' 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
],And in the controller you must create the method, for example, Notification:
public static function Notification ( $ information )
{
Log:: debug ( print_r ( $ information -> getStatus ()-> getCode (), 1 ));
}Creating a recurring payment plan starts with creating the plan and to do this you must create the following array:
If you want to see the request objects: 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
],
]
];And then you must call the plan creation method:
$ 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 uses the MIT license, to find out more read the link: MIT license