mavart / axerve-client-sdk
SDK PHP per integrare le API di pagamento Axerve
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.5
README
Questo SDK PHP permette di integrare facilmente le API di pagamento di Axerve all'interno delle tue applicazioni PHP.
Requisiti
- PHP 7.4 o superiore
- Estensione JSON di PHP
- Estensione cURL di PHP
- Composer
Installazione
Per installare l'SDK, usa Composer:
composer require mavart/axerve-sdk-php
Configurazione
Per iniziare ad utilizzare l'SDK, è necessario creare un'istanza del client con i tuoi dati di autenticazione:
<?php require_once 'vendor/autoload.php'; use Axerve\Payment\AxerveClient; // Inizializza il client con le tue credenziali $client = new AxerveClient( 'LA_TUA_API_KEY', 'IL_TUO_SHOP_LOGIN', false // false (o omesso) per l'ambiente di produzione, true per l'ambiente sandbox );
L'SDK utilizza l'ambiente di produzione come impostazione predefinita. Se desideri utilizzare l'ambiente sandbox per i test, puoi specificare true come terzo parametro durante l'inizializzazione del client:
// Inizializza il client in modalità sandbox $client = new AxerveClient( 'LA_TUA_API_KEY', 'IL_TUO_SHOP_LOGIN', true );
Metodi
Payment API
POST payment/create
$client->payment->create($data)
GET payment/detail
$client->payment->getDetail($paymentId)
POST payment/detail
$client->payment->retrieveDetails($data)
POST payment/update
$client->payment->update($data)
POST payment/submit
$client->payment->submit($data, $paymentToken)
POST payment/capture
$client->payment->capture($data)
POST payment/cancel
$client->payment->cancel($data)
POST payment/refund
$client->payment->refund($data)
GET payment/methods/{paymentId}/{languageId}
$client->payment->getMethods($paymentId, $languageId, $paymentToken)
Check API
POST check/creditCard
$client->check->creditCard($data)
...altri metodi in aggiornamento
POST check/cvvPOST check/emailPOST check/expirydatePOST check/panPOST check/DCCPOST check/token
Shop API
GET shop/paymentMethods
$client->shop->getMethods($shopLogin)
...altri metodi in aggiornamento
GET shop/environmentGET shop/languagePOST shop/languageGET shop/motoPOST shop/motoPOST shop/paymentMethodsGET shop/paymentPagePOST shop/paymentPagePOST shop/tokenGET shop/versionGET shop/tokenDELETE shop/token
Dashboard API
...in aggiornamento
Accesso tipizzato alle risposte
L'SDK offre risposte e payload tipizzati in base al tipo di operazione, rendendo più intuitivo e sicuro l'accesso ai dati.
Tipi di risposta
PaymentCreateResponse: Classe specifica per le risposte dell'endpointpayment/createPaymentDetailResponse: Classe specifica per le risposte degli endpointpayment/detaile altri operativi
Tipi di payload
CreatePaymentPayload: Payload specifico per le risposte dell'endpointpayment/createDetailPaymentPayload: Payload specifico per le risposte degli endpointpayment/detaile altri
Esempi di utilizzo
Creazione di un pagamento
try { $response = $client->payment->create($paymentRequest); if (!$response->hasError()) { // Accesso diretto ai metodi della risposta tipizzata echo "Payment ID: " . $response->getPaymentId(); echo "Token: " . $response->getPaymentToken(); // Verifica se è richiesto un redirect e ottieni l'URL if ($response->isRedirect()) { header('Location: ' . $response->getRedirectUrl()); exit; } // Accesso diretto alle proprietà con sintassi semplificata echo "Payment ID: " . $response->paymentID; echo "Token: " . $response->paymentToken; } } catch (ApiException $e) { echo "Errore: " . $e->getMessage(); }
Dettaglio di un pagamento
try { $response = $client->payment->getDetail($paymentId); if ($response->isSuccessful()) { // Accesso diretto ai metodi della risposta tipizzata echo "Payment ID: " . $response->getPaymentId(); echo "Shop Transaction ID: " . $response->getShopTransactionId(); echo "Bank Transaction ID: " . $response->getBankTransactionId(); // Accesso diretto alle proprietà con sintassi semplificata echo "Metodo pagamento: " . $response->paymentMethod; echo "Importo: " . $response->amount . " " . $response->currency; // Accesso ad array complessi come eventi e dati carta if (isset($response->cardData)) { echo "Circuito: " . $response->cardData['circuit']; } if (isset($response->events)) { foreach ($response->events as $event) { echo "Evento: " . $event['eventType'] . " - " . $event['eventStatus']; } } } } catch (ApiException $e) { echo "Errore: " . $e->getMessage(); }
Gestione degli errori
L'SDK gestisce le eccezioni in modo strutturato. Tutte le eccezioni dell'API estendono la classe base Axerve\Payment\Exception\ApiException.
try { // Chiamata API $result = $client->payment->create($paymentData); } catch (Axerve\Payment\Exception\AuthenticationException $e) { // Errore di autenticazione echo "Errore di autenticazione: " . $e->getMessage(); } catch (Axerve\Payment\Exception\ValidationException $e) { // Errore di validazione echo "Errore di validazione: " . $e->getMessage(); var_dump($e->getErrors()); // Ottieni i dettagli degli errori di validazione } catch (Axerve\Payment\Exception\ApiException $e) { // Altri errori API echo "Errore API: " . $e->getMessage(); }
Nota sull'implementazione
Questo SDK utilizza l'estensione cURL di PHP per effettuare le richieste HTTP alle API di Axerve, garantendo massima compatibilità e controllo.
Documentazione completa
Per la documentazione completa delle API di Axerve, visita https://api.axerve.com/