Documentation Développeur AstraPay
Intégrez la passerelle de paiement AstraPay en quelques minutes pour accepter les paiements en $ASTRA Web3, Bancontact, Revolut Pay, Cartes et Cryptos.
1. Intégration Client (Drop-in JavaScript SDK)
Ajoutez le script AstraPay dans votre page HTML, puis déclenchez la méthode AstraPay.open() lors du clic sur votre bouton de commande.
<!-- 1. Inclure le script AstraPay -->
<script src="https://astratorrent.la/pay/sdk/astrapay.js"></script>
<!-- 2. Bouton de Paiement -->
<button id="btnPayer">Payer ma commande</button>
<script>
document.getElementById('btnPayer').addEventListener('click', function() {
AstraPay.open({
apiKey: 'pk_live_votre_cle_marchand', // Disponible dans votre dashboard
amount: 29.99, // Montant en EUR
currency: 'EUR',
orderId: 'CMD-9482', // Référence unique de votre commande
description: 'Pack VIP 1 Mois',
customerEmail: '[email protected]',
onSuccess: function(result) {
console.log('Paiement validé avec succès !', result);
window.location.href = '/commande-succes.php?order=' + result.orderId;
},
onCancel: function() {
console.log('Le client a fermé la fenêtre de paiement.');
}
});
});
</script>
2. Créer une charge côté Serveur (Backend API)
POST /pay/api/v1/create_charge.php
Si vous préférez générer une session de paiement sécurisée depuis votre serveur backend (PHP, Python, Node.js) :
// Exemple en PHP (cURL)
$ch = curl_init('https://astratorrent.la/pay/api/v1/create_charge.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'api_key' => 'pk_live_votre_cle_ici',
'amount' => 19.99,
'currency' => 'EUR',
'order_id' => 'ORDER-1002',
'description' => 'Abonnement Membre'
]));
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
// Rediriger le client vers l'URL de paiement reçue :
$checkoutUrl = $response['checkout_url'];
3. Vérification du Statut d'un Paiement
GET /pay/api/v1/check_status.php?order_id=ORDER-1002
{
"status": "success",
"charge_id": "ch_7a9c8b...",
"order_id": "ORDER-1002",
"payment_status": "succeeded",
"amount_eur": 19.99,
"amount_astra": 19.99,
"payment_method": "ASTRA_WEB3",
"paid_at": "2026-09-25 08:30:12"
}
4. Réception & Vérification des Webhooks (IPN)
AstraPay notifie votre serveur en temps réel via une requête HTTP POST signée avec votre clé secrète (sk_live_...).
// Exemple de script webhook sur votre serveur (webhook.php) :
$rawPayload = file_get_contents('php://input');
$signatureHeader = $_SERVER['HTTP_X_ASTRAPAY_SIGNATURE'] ?? '';
$mySecretKey = 'sk_live_votre_cle_secrete';
// 1. Vérifier la signature HMAC-SHA256
$computedSignature = hash_hmac('sha256', $rawPayload, $mySecretKey);
if (!hash_equals($computedSignature, $signatureHeader)) {
http_response_code(401);
die('Signature AstraPay invalide');
}
// 2. Traiter l'événement
$event = json_decode($rawPayload, true);
if ($event['event'] === 'charge.succeeded') {
$orderId = $event['data']['order_id'];
$amount = $event['data']['amount_eur'];
$method = $event['data']['payment_method'];
// Débloquer la commande dans votre base de données :
// markOrderAsPaid($orderId, $method);
}
http_response_code(200);
echo json_encode(['received' => true]);
5. Spécifications du Smart Contract $ASTRA
Réseau : Polygon Mainnet (PoS)
Chain ID : 137 (0x89 hex)
Adresse Contrat : 0x8Ec0e48B6a868BCE2dC82a03EaC26216C5773B6A
Symbole : ASTRA
Décimales : 18
Parité Garantie : 1 ASTRA = 1.00 €