PHP code example of r3mfr / api-dpae-php

1. Go to this page and download the library: Download r3mfr/api-dpae-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

r3mfr / api-dpae-php example snippets




$username = 'foo';
$password = 'bar';
\R3m\Dpae\ApiClient::setCredentials($username, $password);

$myTokenStorage = new class implements \R3m\Dpae\AuthTokenStorage\AuthTokenStorageInterface {
    public function get(): string
    {
        // Lire le token depuis la base de données ou depuis un fichier
    }

    public function set(string $token): void
    {
        // Stocker le token en base de données ou dans un fichier
    }
};
\R3m\Dpae\ApiClient::setAuthTokenStorage($myTokenStorage);

$embauche = new \R3m\Dpae\Embauche();
$embauche
    ->setRaisonSociale('R3M EVENEMENT')
    ->setSiret('67846960300074')
    // ... définir les autres valeurs de l'embauche ...
    ->setIdExterne('123456');

try {
    $embauche->save();
} catch (\R3m\Dpae\Exception\BadRequestException $e) {
    foreach ($e->getViolations() as $violation) {
        echo("Erreur sur la propriété {$violation['propertyPath']}: {$violation['message']}");
    }
    exit(1);
} catch (\R3m\Dpae\Exception\ExceptionInterface $e) {
    echo("Erreur lors de la création de l'embauche : {$e->getCode()} {$e->getMessage()}");
    exit(1);
}

echo("Embauche {$embauche->id} créée. Statut de la DPAE: {$embauche->getDpae()->statutTraitementDescription}.");

$idExterne = '123456'; // ID de l'embauche dans l'application cliente

try {
    /** @var \R3m\Dpae\Embauche $embauche */
    $embauche = \R3m\Dpae\Embauche::one(['idExterne' => $idExterne]);
} catch (\R3m\Dpae\Exception\ExceptionInterface $e) {
    echo("Erreur {$e->getCode()} lors de la recherche de l'embauche : {$e->getMessage()}");
    exit(1);
}

if ($embauche) {
    if ($embauche->isDeclaree()) {
        echo("DPAE validée par l'URSSAF. Numéro de dossier : {$embauche->getDpae()->refDossier}");
    } else {
        if ($embauche->hasErreur()) {
            echo("Erreur avec la DPAE de l'embauche {$embauche->getId()} : {$embauche->getDpae()->codeRetourAr}-{$embauche->getDpae()->codeRetourArLibelle}");
        } else {
            echo("Statut de la DPAE pour l'embauche {$embauche->getId()} : {$embauche->getDpae()->statutTraitementDescription}");
        }
    }
} else {
    echo("Aucune embauche trouvée pour idExterne=$idExterne");
}


// Il est conseillé de configurer une clé secrête pour valider la requête Webhook 
$secret = 'phrase_secrete';

try {
    $webhookEvent = \R3m\Dpae\WebhookEvent::receive($secret);
} catch (\R3m\Dpae\Exception\ExceptionInterface $e) {
    echo sprintf("Erreur lors de la réception du webhook : {$e->getMessage()}");

    // Retourner un code >= 400 informera l'API DPAE de l'erreur de traitement
    header($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Dequest', true, 400);
    exit(1);
}

$embauche = $webhookEvent->getEmbauche();

// Vous pouvez maintenant traitez le statut de la DPAE dans votre application :
// - mettre à jour le statut de la DPAE dans votre base de données
// - notifiez le déclarant si une erreur doit être corrigée
// - etc.

if ($embauche->isDeclaree()) {
    echo sprintf("DPAE validée par l'URSSAF. Numéro de dossier : {$embauche->getDpae()->refDossier}");
} else {
    // l'embauche n'est pas déclarée, la DPAE est en erreur
    echo sprintf("Erreur avec la DPAE de l'embauche {$embauche->getId()} : {$embauche->getDpae()->codeRetourAr}-{$embauche->getDpae()->codeRetourArLibelle}");
}

// Informer l'API DPAE du succès du traitement du webhook
header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK', true, 200);

header($_SERVER['SERVER_PROTOCOL'] . ' 503 Service Unavailable', true, 503);
header('Retry-after: 3600');
bash
composer