Kurulum
npm install @xpayr/extension-kit
# or copy src/index.js into your extension —
# zero dependencies, no build step, MV3-ready
Tarayıcı eklentinizi, plugin veya masaüstü uygulamanızı hesap sistemi kurmadan kriptoyla satın. Alıcı cüzdanıyla öder ve o cüzdan lisansın kendisi olur — başka bir cihazı ücretsiz bir mesaj imzalayarak açar. E-posta yok, kaybolacak lisans anahtarı yok, chargeback yok.
Chrome Web Store ödemeleri Şubat 2021'de kapandı; artık her eklenti geliştiricisinin harici bir ödeme katmanına ihtiyacı var. Pazardaki lider seçenek Stripe hesabı zorunlu kılıyor ve bu, Türkiye, Pakistan, Nijerya, Bangladeş, Endonezya, Mısır ve daha birçok ülkedeki geliştiricileri doğrudan dışarıda bırakıyor.
Kripto ödeme geçitleri "ödeme alındı" noktasında durur. Size lisans değil, bir webhook verirler: yetki kaydı yok, SDK yok, cihazlar arası doğrulama yok. İşin zor yarısını kendiniz yazmak zorunda kalırsınız. Bu kit, tam olarak o yarıdır.
ExtensionPay Paddle / LS Kripto gecitleri XPayr Kit
komisyon 5% + Stripe 5% + 50c 0.5-1% 2.9% flat
Stripesiz calisir hayir kismen evet evet
lisans katmani evet kismi hayir evet
chargeback evet evet yok yok
kayitli satici hayir evet hayir hayir
Kayıtlı satıcı (merchant of record) değiliz: vergilerinizi kendiniz beyan edersiniz. Paddle ve Lemon Squeezy'nin daha yüksek komisyonu tam da bunu satın alır; seçim yapmadan önce anlamaya değer gerçek bir ödünleşmedir.
Merchant panelinizden bir ürün oluşturup ürün kodunu alın, sonra SDK'yı bağlayın. host_permissions gerekmez; bu yüzden eklentiniz kurulurken veri erişimi uyarısı çıkmaz.
npm install @xpayr/extension-kit
# or copy src/index.js into your extension —
# zero dependencies, no build step, MV3-ready
{
"manifest_version": 3,
"permissions": ["storage", "alarms"],
"externally_connectable": { "matches": ["https://xpayr.com/*"] }
}
import XPayrKit from '@xpayr/extension-kit';
const xpayr = XPayrKit('prod_my_extension');
xpayr.startBackground(); // required: token delivery + daily refresh
xpayr.onLicenseChanged.addListener(user => {
console.log(user.licensed ? 'unlocked' : 'locked');
});
const user = await xpayr.getUser();
if (user.licensed) {
enableProFeatures();
} else {
showUpgradeButton(() => xpayr.openCheckout());
}
Entegrasyonun tamamı bu. Alıcı akışı — ağ seç, öde, imzala, kilidi aç — xpayr.com/buy/{product_code} adresinde bizde barındırılır.
| Alan | Tip | Anlamı |
|---|---|---|
licensed |
boolean |
Özelliklerinizi buna göre kilitleyin. Yerel olarak doğrulanmış bir token'dan cevap verir; anında çalışır ve çevrimdışıyken de çalışır. |
plan |
'lifetime' | 'prepaid_year' | null |
Alıcının satın aldığı plan. |
wallet |
string | null |
Lisansın bağlı olduğu cüzdan — ödemeyi yapan cüzdan. |
paidAt |
Date | null |
Lisansın verildiği zaman. |
expiresAt |
Date | null |
Süreli planlarda bitiş tarihi; ömür boyu planlarda null. |
source |
'cache' | 'network' |
Bu cevabın nereden geldiği. |
staleSince |
Date | null |
30 günlük çevrimdışı tolerans süresi içinde eskimiş bir token ile çalışılırken dolar. |
| Metot | Açıklama |
|---|---|
startBackground() |
Service worker içinde bir kez çağırın. Token teslimatını ve günlük yenileme alarmını bağlar. |
getUser() |
Önce-çevrimdışı lisans kontrolü. Önbellekteki ES256 token'ını yerel olarak doğrular — sıcak yolda ağ gidiş-dönüşü yok. |
openCheckout() |
Barındırılan ödeme sayfasını yeni sekmede açar. Alıcı, etkinleştirdiğiniz ağ ve tokenlardan istediğini seçer. |
openRestore() |
"Zaten satın aldım" — başka bir cihazı cüzdan imzasıyla açar. E-posta yok, lisans anahtarı yok. |
refresh() |
Çevrimiçi yeniden doğrulamayı zorlar. İadeleri ve iptalleri anında yakalar. |
getPlans() |
Herkese açık ürün bilgisi: fiyat, plan tipi, izin verilen ağlar. |
onLicenseChanged |
Lisans durumu her değiştiğinde tetiklenir. |
Bir süre çevrimdışı mı kaldınız? Lisans, token süresi dolduktan sonra 30 gün daha çalışmaya devam eder, ardından yeniden bağlanma isteğiyle yumuşak kilide geçer — kimse uçuş ortasında kilitlenmez. Müşteriye iade mi yaptınız? Panelden iptal edin: yenileme anında başarısız olur ve token 7 gün içinde ölür.
İlk 300 $'lık lisans satışınızdan hiç komisyon alınmaz. Sonrasında sabit %2,9: ödemeyle aynı zincir işleminde ayrılır — fatura yok, sonradan tahsil edilecek bir şey yok. Sabit ücret yok, aylık ücret yok, chargeback yok. Ağ gas ücreti ayrıdır ve alıcı öder.
14 $ lisans, ücretsiz katman içinde -> eline geçen 14,00 $14 $ lisans, ücretsiz katmandan sonra -> eline geçen 13,59 $ (komisyon 0,41 $)
Webhook'lar isteğe bağlıdır — Kit, sizin tarafınızda hiçbir sunucu olmadan lisansı verir ve doğrular. Yine de sunucu tarafı olay isterseniz, diğer tüm XPayr webhook'larıyla aynı imza şemasını kullanırlar (bkz. imza rehberi) ve artan bekleme süreleriyle yeniden denenirler. Idempotency için event_id kullanın.
| Olay | Ne zaman |
|---|---|
license.issued |
Bir ödeme lisans üretti. Cüzdanı, ürün kodunu, planı ve işlem hash'ini taşır. |
license.revoked |
Panelden bir lisansı iptal ettiniz, genellikle bir iadenin ardından. |
payment.pending |
Bir ödeme oturumu oluşturuldu. |
payment.processing |
Ödeme zincirde ve onay bekliyor. |
payment.completed |
Ödeme zincirde doğrulandı. |
payment.failed |
Gönderilen işlem, oturuma karşı doğrulanamadı. |
payment.expired |
Oturum ödenmeden süresi doldu. |
Resmi XPayr MCP Sunucusunu (`xpayr_issue_wallet_license`) kullanarak Claude Desktop, Cursor, VS Code Copilot veya otonom yapay zeka destek ajanları üzerinden doğrudan ES256 cüzdan yazılım lisansları düzenleyin ve yönetin.
{
"name": "xpayr_issue_wallet_license",
"arguments": {
"product_id": "prod_my_extension",
"buyer_wallet": "0x71C...89A",
"plan": "lifetime",
"tx_hash": "0x9f8e...3b2a"
}
}
Dinamik SVG güven rozetlerini (partner-badge.php) veya sıfır bağımlılıklı %0.5 Komisyon ve Tasarruf Hesaplayıcı widget'ını (xpayr-fee-widget.js) eklenti README dosyanıza, dokümantasyon portalınıza veya ajans açılış sayfanıza gömün.
<!-- Official Dynamic SVG Trust Badge -->
<a href="https://xpayr.com?utm_source=partner_badge" target="_blank" rel="noopener">
<img src="https://xpayr.com/partner-badge.php?type=powered_by&theme=dark" alt="Powered by XPayr — 0.5% Non-Custodial Crypto Checkout" height="28">
</a>
<!-- Interactive 0.5% Fee & Savings Calculator Widget -->
<div data-xpayr-fee-widget data-volume="100000" data-invoice="250" data-rate="1.0"></div>
<script src="https://xpayr.com/public/sdk/xpayr-fee-widget.js" async></script>
| ExtensionPay | XPayr Lisans Kiti |
|---|---|
ExtPay('extension-id') |
XPayrKit('prod_code') |
extpay.startBackground() |
xpayr.startBackground() |
user.paid |
user.licensed |
user.email |
user.wallet |
openPaymentPage() |
openCheckout() |
openLoginPage() |
openRestore() |
onPaid.addListener |
onLicenseChanged.addListener |
getPlans() |
getPlans() |
Tek yapısal fark kimlikte: ExtensionPay müşteriyi e-postayla tanır, Kit ise cüzdanla. Bu, magic-link gidiş-dönüşünü ortadan kaldırır ve bir lisansın cüzdan paylaşmadan paylaşılamaması anlamına gelir.
Kurulum: @xpayr/node-sdk (v0.2.0), @xpayr/payment-evidence (v0.2.0), @xpayr/extension-kit (v0.2.0)veya @xpayr/mcp-server (v1.0.0) paketlerini NPM'den yükleyin veya şu araçla canlı JSON-RPC 2.0 çağrıları yürütün: POST https://xpayr.com/api/mcp.