agenciamav/laravel-ifood

Pacote Laravel para integração com as novas APIs do Ifood.

Downloads

68

Stars

12

Version

v1.0.2

Latest Version on Packagist Total Downloads

Pacote Laravel para integração com as novas APIs do Ifood.


Instalação

Instale o pacote via composer:

composer require agenciamav/laravel-ifood

Obtenha as credenciais do seu aplicativo do tipo distribuído em developer.ifood.com.br e insira no arquivo .env:

// .env
IFOOD_CLIENT_ID=******
IFOOD_CLIENT_SECRET=******

Adicione o trait LaravelIfood ao model que deseja integrar:

namespace App\Models;

use Agenciamav\LaravelIfood\LaravelIfood;

class User extends Model
{
	use LaravelIfood;
}

Isto irá adicionar ao model as funções necessárias para autenticação.

Caso precise de uma interface para autorização da aplicação, você pode publicar as configurações e assets do pacote:

php artisan vendor:publish --provider=Agenciamav\LaravelIfood\LaravelIfoodServiceProvider

Isto gerará um arquivo config/ifood.php com as configurações do pacote e os arquivos de assets.

/config
	/ifood.php

/resources
	/js
		/Pages
			/Ifood
				Auth.vue
				Merchant.vue
				Header.vue
				...

Rode o comando php artisan migrate para criar as tabelas necessárias.

Pronto! Agora você pode usar os recursos do iFood.


Como usar

Autorizando a aplicação:

$user = request()->user(); // Ou qualquer model que use o trait

// 1. Obtém USER CODE para inserir no portal do iFood
$user->getUserCode();  // Retorna: 'XXXX-XXXX'

// 2. Após informar o USER CODE no portal do iFood, um AUTHORIZATION CODE será gerado
$auth_code = 'XXXX-XXXX'; // O código de autorização gerado pelo iFood

// 3. Passando o AUTHORIZATION CODE, obtém-se o token de acesso
$user->getAccessToken($auth_code); // Retorna o ACCESS TOKEN

Com isto o token de acesso será armazenado no banco de dados e ficará salvo na seção para ser utilizado em todas as requisições.

Exemplo de uso:

use Agenciamav\LaravelIfood\Models\Merchant;

Merchant::all(); // Obtém todas as lojas conectadas
Merchant::show('xxx...'); // Obtém detalhes de uma loja via UUID

Outras funcionalidades estão sendo implementadas.

Você pode contribuir para o desenvolvimento do pacote. Faça um fork deste repositório e envie pull requests.

Você pode encontrar mais informações na documentação do iFood.


Sobre autorização e autenticação:

O Ifood fornece dois fluxos de autorização: o Fluxo de credencial de aplicativo e o Fluxo de código de autorização. Este pacote visa atender o fluxo de código de autorização para aplicativos cadastrados como tipo "distribuído".

Esse fluxo requer que o usuário do seu aplicativo seja capaz de se autenticar via Portal do Parceiro e autorizar a conexão solicitada pelo app.

Fluxo de código de autorização:

  1. Seu app solicita código de vínculo ✔
  2. Recebe código de vínculo e código verificador ✔
  3. Insere código de vínculo no Portal do Parceiro ✔
  4. Após autorizar o aplicativo, o código de autorização é digitado no aplicativo ✔
  5. Solicita token de acesso com código de autorização e código verificador ✔
  6. Aplicativo recebe token de acesso e refresh token ✔
  7. Aplicativo usa token para acessar recursos das lojas via as APIs do iFood ✔
  8. Aplicativo atualiza o token de acesso com o refresh token 🟠 WIP

Passo a passo aqui


Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

agenciamav

Author

agenciamav