PonponPay
Débutant10 min de lecture

Mode Public Key

Le mode Public Key est concu pour les integrations navigateur. Le frontend utilise une public_key pour obtenir un token de session court, puis creer des commandes et consulter leur statut sans exposer une API Key.

Flux d'integration

  1. Generez une Public Key dans le tableau de bord marchand et activez l integration frontend.
  2. Configurez la liste blanche des domaines autorises.
  3. Le navigateur appelle /api/v1/sdk/token avec la Public Key.
  4. Le token de session retourne sert a appeler /api/v1/sdk/orders.
  5. Redirigez vers payment_url ou interrogez le statut de la commande.

Le mode Public Key actuel ne demande plus de signature de parametres cote frontend. Utilisez de preference le SDK JavaScript ou les appels API manuels ci-dessous.

Obtenir la Public Key

  1. Connectez-vous au tableau de bord PonponPay.
  2. Ouvrez la page "Frontend Integration".
  3. Activez l integration frontend.
  4. Generez et copiez la Public Key au format pub_xxx.

Liste blanche de domaines

La Public Key ne peut etre utilisee que depuis les domaines autorises. Le backend verifie Origin ou Referer.

  • Autorisez localhost uniquement en developpement.
  • Utilisez les vrais domaines en production.
  • Les sous-domaines wildcard comme *.example.com sont pris en charge.

Si votre page tourne dans un iframe, une WebView ou une couche intermediaire, Origin peut ne pas etre envoye de facon stable. Verifiez Origin et Referer avant la mise en production.

Recommande : SDK JavaScript

npm install @ponponpay/sdk

Initialiser le client

import { PonponPayClient } from '@ponponpay/sdk/browser';

const client = new PonponPayClient({
  publicKey: 'pub_your_public_key',
  baseUrl: 'https://api.ponponpay.com'
});

Creer une commande

const order = await client.createOrder({
  currency: 'USDT',
  network: 'tron',
  amount: 100,
  orderId: 'ORDER_123456',
  notifyUrl: 'https://your-site.com/webhook',
  redirectUrl: 'https://your-site.com/success'
});

window.location.href = order.paymentUrl;

Consulter le statut

const status = await client.getOrderStatus(order.tradeId);
console.log(status.status);

Pour plus de details SDK, consultez la section JavaScript SDK ou le README du depot.

Integration API manuelle

1. Obtenir un token court

const tokenRes = await fetch('https://api.ponponpay.com/api/v1/sdk/token', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    public_key: 'pub_your_public_key',
    timestamp: Date.now()
  })
});

const tokenData = await tokenRes.json();
const token = tokenData.data.token;

2. Creer une commande avec le token

const orderRes = await fetch('https://api.ponponpay.com/api/v1/sdk/orders', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Authorization: `Bearer ${token}`
  },
  body: JSON.stringify({
    currency: 'USDT',
    network: 'tron',
    amount: 100,
    order_id: 'ORDER_123456',
    notify_url: 'https://your-site.com/webhook',
    redirect_url: 'https://your-site.com/success'
  })
});

const orderData = await orderRes.json();
window.location.href = orderData.data.payment_url;

3. Consulter le statut

const statusRes = await fetch(
  'https://api.ponponpay.com/api/v1/sdk/orders/T20240101120000123456/status',
  {
    headers: {
      Authorization: `Bearer ${token}`
    }
  }
);

const statusData = await statusRes.json();
console.log(statusData.data.status);

Limites fonctionnelles

CapaciteSupportDescription
Creer une commandePris en charge via les APIs token order du SDK.
Consulter le statutUniquement pour les commandes du marchand associe a la Public Key.
APIs admin completesNon exposees au navigateur en mode Public Key.
Exposer API Key dans le navigateurA ne jamais faire. Utilisez uniquement Public Key.

Securite

  • La Public Key peut etre publique, mais ne fonctionne que sur les domaines autorises.
  • Les tokens de session sont courts et doivent etre renouveles avant expiration.
  • Le backend verifie timestamp, domaine d origine et limites frontend du marchand.
  • Utilisez toujours HTTPS en production.

Si vous avez besoin d APIs de gestion cote serveur, utilisez le mode API Key.