Ödeme linkleri: rehber
Qvard ödeme linkinin nasıl çalıştığı, panelden nasıl oluşturulacağı ve API ile müşteri başına nasıl ödeme oluşturulacağı.
Link nedir
Ödeme linki, ödemeler için bir sarmalayıcıdır. Linkle ödeme yapan her müşteri, diğer tüm Qvard ödemeleriyle aynı hosted ödeme sayfasında kendi ödemesini alır.
Bir ödeme, sabit kurlu bir faturadır. Link ise bu ödemeleri oluşturan çok kullanımlık bir giriş noktasıdır. Bir link birden çok ödeme oluşturabilir, ama ödemenin yerini almaz.
Bağlantının kendi para birimi vardır: müşterinin gördüğü ve ödediği birim. Her ödeme kurunu oluşturulduğu anda sabitler. Güncel kurlar «Döviz kurları» sayfasındadır.
Panelden link oluşturma
Panelde «Ödeme linkleri» bölümünü açın ve linki ayarlayın. Seçenekler şunlardır:
- Tutar: sabit ya da müşteri tarafından girilen, minimum ve maksimum değerli.
- Ödeme limiti: limit yok, tek ödeme ya da N ödeme.
- Süre: 1, 7 veya 30 gün, ya da süresiz.
- Alıcı e-postası: sorulmasın, isteğe bağlı ya da zorunlu.
Her linkin kendi adresi vardır: https://qvard.com/l/<slug>. Müşteri açar, token ve ağı seçer, ardından olağan ödeme sayfasını görür.
Linki PNG formatında QR kod olarak indirebilirsiniz; basılı faturalar, fişler ve afişler için uygundur. «Paylaş» düğmesi linki herhangi bir kanalda göndermeniz için verir.
API ile müşteri başına bir link
Kimin ödediğini kesin bilmek için API üzerinden, sunucunuzdan her müşteri için bir ödeme oluşturun ve yanıttaki redirectUrl'i müşteriye gönderin. Gizli anahtar (qvard_sk_…) yalnızca sunucunuzda kalmalıdır.
Örnek istek
# Create a payment for one customer
curl -X POST https://api.qvard.com/api/v1/payment \
-H 'x-api-key: qvard_sk_YOUR_SECRET_KEY' \
-H 'Content-Type: application/json' \
-d '{"price":12499.00,"currency":"INR","id":"order-123"}'
# The response contains "data": { "redirectUrl": "https://my.qvard.com/pay/..." }
# Send that redirectUrl to the customer.// Run on your server only: the secret key must not reach the browser
async function createPaymentLink(orderId, amount) {
const res = await fetch('https://api.qvard.com/api/v1/payment', {
method: 'POST',
headers: {
'x-api-key': process.env.QVARD_SECRET_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({ price: amount, currency: 'INR', id: orderId })
});
if (!res.ok) throw new Error('Qvard API error: ' + res.status);
const payment = await res.json();
return payment.data.redirectUrl; // send this link to the customer
}
// Usage inside an async handler: const link = await createPaymentLink('order-123', 10);Yanıtta ödemenin id değeri ve https://my.qvard.com/pay/<uuid> gibi bir redirectUrl gelir. Müşteriye redirectUrl'i gönderin. İstekteki id değeri sizin sipariş numaranızdır.
Gizli anahtarı (qvard_sk_…) tarayıcıda çalışan koda ya da herkese açık bir depoya koymayın. Ödemeleri yalnızca sunucudan oluşturun.
Sınırlı satış ve tek kullanımlık link
Tek kullanımlık link bir ödeme kabul eder; bu bir fatura için uygundur. N ödeme limitli link N ödeme kabul eder ve sonra durur; bu da örneğin 100 yerlik sınırlı bir teklif için uygundur.
Link durumları
- Aktif: link ödeme kabul eder.
- Devre dışı: linki panelden kapattınız. Tekrar açana kadar ödeme kabul etmez.
- Süresi doldu: süre (1, 7 veya 30 gün) geçti.
- Tükendi: ödeme limiti doldu.
Linkten gelen ödemeler için webhook
Bir linkten oluşturulan ödemeler, diğer ödemelerle aynı webhook'u gönderir ve aynı X-Qvard-Signature başlığını taşır. Bu ödemelerin gövdesinde iki isteğe bağlı ek alan bulunur: paymentLink, linkin slug değeri, ve customerEmail, link istediyse müşterinin girdiği e-posta. Diğer ödemelerde bu alanlar yoktur.
Webhook imzası nasıl doğrulanır
Link neyi söylemez
Çok kullanımlık bir link, kimin ödediğini göstermez. Webhook ödemeyi bildirir, alıcıyı değil.
customerEmail alanı isteğe bağlıdır ve doğrulanmaz: müşteri yazar, kimse kontrol etmez. Alıcıyı kesin bilmeniz gerekiyorsa her alıcı için API ile ayrı bir ödeme oluşturun.