SDK PHP
Le SDK PHP fournit un client pour l’intégration avec l’API Subnoto. Il gère le chiffrement tunnel Oak, l’authentification par signature HTTP, et inclut une extension PHP native pour l’attestation AMD SEV-SNP.
Installation
Section intitulée « Installation »Téléchargez la dernière archive depuis GitLab Packages et extrayez-la dans votre projet :
tar xzf subnoto-api-client-php-*.tar.gz -C vendor/subnotoAjoutez l’entrée PSR-4 autoload dans votre composer.json :
{ "autoload": { "psr-4": { "Subnoto\\ApiClient\\": "vendor/subnoto/src/" } }, "require": { "ext-oak_client_php": "*", "guzzlehttp/guzzle": "^7.0" }}Chargez l’extension native en ajoutant à votre php.ini :
extension=/path/to/vendor/subnoto/ext/oak_client_php.soDémarrage Rapide
Section intitulée « Démarrage Rapide »Définissez vos identifiants comme variables d’environnement — SubnotoConfig les récupère automatiquement.
export SUBNOTO_ACCESS_KEY="votre-cle-acces"export SUBNOTO_SECRET_KEY="votre-cle-secrete-hex"<?phprequire_once 'vendor/autoload.php';
use Subnoto\ApiClient\SubnotoClient;use Subnoto\ApiClient\SubnotoConfig;
$config = new SubnotoConfig();$client = new SubnotoClient($config);
// Vérifier l'authentification$whoami = $client->utils()->publicUtilsWhoamiPost();echo "Authentifié en tant que : " . $whoami->getTeamName() . "\n";
// Lister les espaces de travail$workspaces = $client->workspace()->publicWorkspaceListPost();foreach ($workspaces as $ws) { echo "Espace de travail : " . $ws->getName() . "\n";}Créer une Enveloppe
Section intitulée « Créer une Enveloppe »use Subnoto\ApiClient\Model\PublicEnvelopeCreateFromFilePostRequest;
$request = new PublicEnvelopeCreateFromFilePostRequest([ 'workspace_id' => 'votre-workspace-id', 'name' => 'Contrat à signer', 'document' => fopen('/chemin/vers/document.pdf', 'r'),]);
$envelope = $client->envelope()->publicEnvelopeCreateFromFilePost( workspace_id: $request->getWorkspaceId(), name: $request->getName(), document: $request->getDocument(),);
echo "Enveloppe créée : " . $envelope->getId() . "\n";Gestion des Erreurs
Section intitulée « Gestion des Erreurs »use Subnoto\ApiClient\SubnotoError;
try { $result = $client->workspace()->publicWorkspaceGetPost( new \Subnoto\ApiClient\Model\PublicWorkspaceGetPostRequest([ 'workspace_id' => 'id-inexistant', ]) );} catch (SubnotoError $e) { echo "Erreur API ({$e->getStatusCode()}) : {$e->getMessage()}\n";}Sous-clients API
Section intitulée « Sous-clients API »Le SubnotoClient fournit des sous-clients typés pour chaque groupe d’API :
| Sous-client | Méthode d’accès | Description |
|---|---|---|
| Envelope | $client->envelope() | Créer, envoyer, signer des enveloppes et gérer les documents |
| Workspace | $client->workspace() | Lister et gérer les espaces de travail |
| Contact | $client->contact() | Créer et gérer les contacts |
| Template | $client->template() | Lister les modèles |
| Logs | $client->logs() | Consulter les journaux d’audit |
| Authentication | $client->authentication() | Créer des tokens iframe pour la signature intégrée |
| Utils | $client->utils() | Endpoints utilitaires (whoami) |
Configuration
Section intitulée « Configuration »SubnotoConfig accepte les paramètres suivants :
| Paramètre | Variable d’environnement | Description |
|---|---|---|
accessKey | SUBNOTO_ACCESS_KEY | Votre clé d’accès API |
secretKey | SUBNOTO_SECRET_KEY | Votre clé secrète API (encodée en hexadécimal) |
$config = new SubnotoConfig( accessKey: 'votre-cle-acces', secretKey: 'votre-cle-secrete-hex',);Chiffrement Tunnel Oak
Section intitulée « Chiffrement Tunnel Oak »Le SDK PHP utilise l’extension native oak_client_php pour établir un tunnel chiffré avec les enclaves AMD SEV-SNP de Subnoto. Cela garantit un chiffrement de bout en bout entre votre application et l’enclave, avec une attestation cryptographique que le serveur s’exécute dans une enclave sécurisée authentique.
Le tunnel est établi automatiquement lors de la création d’une instance SubnotoClient. La gestion des sessions (incluant la relance automatique en cas d’erreur de tunnel) est gérée de manière transparente.