Public Key Modus
Der Public Key Modus ist fuer Browser-Integrationen gedacht. Das Frontend tauscht eine public_key gegen ein kurzlebiges Session Token, erstellt damit Bestellungen und fragt Status ab, ohne eine API Key im Browser offenzulegen.
Integrationsablauf
- Erzeuge eine Public Key im Merchant Dashboard und aktiviere die Frontend-Integration.
- Konfiguriere die Domain-Whitelist.
- Der Browser ruft /api/v1/sdk/token mit der Public Key auf.
- Mit dem Session Token wird /api/v1/sdk/orders aufgerufen.
- Leite Nutzer zu payment_url weiter oder frage den Bestellstatus ab.
Der aktuelle Public Key Modus erfordert keine Parametersignatur im Frontend. Empfohlen ist das JavaScript SDK oder der manuelle Aufruf der Token- und Order-APIs unten.
Public Key erhalten
- Melde dich im PonponPay Merchant Dashboard an.
- Oeffne die Seite "Frontend Integration".
- Aktiviere die Frontend-Integration.
- Erzeuge und kopiere die Public Key im Format pub_xxx.
Domain-Whitelist
Public Keys koennen nur von freigegebenen Domains genutzt werden. Das Backend prueft Origin oder Referer.
- Erlaube localhost nur in der Entwicklung.
- Nutze in Produktion echte Domains.
- Wildcard-Subdomains wie *.example.com werden unterstuetzt.
Wenn deine Seite in iframe, App WebView oder einer Zwischenseite laeuft, werden Origin-Header eventuell nicht stabil gesendet. Pruefe Origin und Referer vor dem Go-live.
Empfohlen: JavaScript SDK
npm install @ponponpay/sdkClient initialisieren
import { PonponPayClient } from '@ponponpay/sdk/browser';
const client = new PonponPayClient({
publicKey: 'pub_your_public_key',
baseUrl: 'https://api.ponponpay.com'
});Bestellung erstellen
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;Status abfragen
const status = await client.getOrderStatus(order.tradeId);
console.log(status.status);Mehr SDK-Details findest du im JavaScript SDK Abschnitt oder im Repository README.
Manuelle API-Integration
1. Kurzlebiges Token abrufen
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. Bestellung mit Token erstellen
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. Bestellstatus abfragen
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);Funktionsgrenzen
| Funktion | Unterstuetzt | Beschreibung |
|---|---|---|
| Bestellung erstellen | ✅ | Unterstuetzt ueber SDK token order APIs. |
| Status abfragen | ✅ | Nur fuer Bestellungen des mit der Public Key verbundenen Merchants. |
| Vollstaendige Admin APIs | ❌ | Im Public Key Modus nicht im Browser verfuegbar. |
| API Key im Browser offenlegen | ❌ | Niemals tun. Im Browser nur Public Key verwenden. |
Sicherheit
- Eine Public Key darf oeffentlich sein, funktioniert aber nur auf freigegebenen Domains.
- Session Tokens sind kurzlebig und sollten vor Ablauf erneuert werden.
- Das Backend prueft timestamp, Origin-Domain und Frontend-Limits des Merchants.
- Nutze in Produktion immer HTTPS.
Wenn du serverseitige Management APIs brauchst, nutze den API Key Modus.