Fragment Donor SDKManba kodi

0.1.3 versiya · O‘rnatish buyruqlari aniq versiyalarni ishlatadi.

Node.js / TypeScript orqali Telegram Stars xaridi: xavfsiz integratsiya

Node.js / TypeScript backend uchun username, balans, Telegram Stars/Premium va takroriy xaridsiz 429 ishlovi.

Xarid so‘rovi wallet mnemonic va Fragment sessiya/cookie ma’lumotini API operatoriga yuboradi.

Avval Node.js / TypeScript orqali public username tekshiruvini bajaring: servis akkaunti va hamyon credentiali kerak emas. Paketni o‘rnatishdan avval nashr holatini tekshiring yoki tegishli source katalogini build qiling.

Hamyon mnemonic’i va Fragment sessiyasini runtime vaqtida uzating. Avval balansni tekshiring va decimal stringni saqlang. Misolda xarid uchun FRAGMENT_ALLOW_PURCHASES=yes va FRAGMENT_PURCHASE_KIND=stars yoki premium kerak; faqat bitta tanlangan sovg‘a bajariladi.

Bitta kerakli sovg‘ani tanlang: 50–1 000 000 Stars yoki 3/6/12 oylik Premium. Misolda ikkala API methodi ma’lumot uchun ko‘rsatilgan, bu ikki xaridni ham bajarish topshirig‘i emas. Har bir xarid haqiqiy mablag‘ sarflaydi.

Typed flood-wait xatosini tuting va kutish muddatini job scheduler’ga uzating. Xaridni avtomatik qaytarmang. Timeout/unconfirmed bo‘lsa yangi ataylab yuborilgan so‘rovdan oldin hamyon va qabul qiluvchi holatini tekshiring.

O‘rnatish

npm install fragment-donor-sdk@0.1.3

Misol

// Trusted server example. Opt in and choose exactly one purchase kind.
import {
  ApiError,
  FloodWaitError,
  FragmentDonorClient,
  WalletCredentials,
} from "fragment-donor-sdk";

const allowPurchase = process.env.FRAGMENT_ALLOW_PURCHASES === "yes";
const purchaseKind = process.env.FRAGMENT_PURCHASE_KIND;
if (allowPurchase && !["stars", "premium"].includes(purchaseKind)) {
  throw new Error(
    "Set FRAGMENT_PURCHASE_KIND=stars or premium; no purchase sent",
  );
}
const client = new FragmentDonorClient();
const username = process.env.FRAGMENT_USERNAME ?? "durov";
try {
  console.log("Username:", (await client.getUserInfo(username)).username);
  if (process.env.FRAGMENT_MNEMONIC) {
    const credentials = new WalletCredentials({
      mnemonic: process.env.FRAGMENT_MNEMONIC,
      cookie: process.env.FRAGMENT_COOKIE,
      providerKey: process.env.TONCONSOLE_API_KEY,
    });
    const balance = await client.walletBalance({ credentials });
    console.log("TON:", balance.ton, "USDT:", balance.usdt_ton);
    if (allowPurchase && purchaseKind === "stars") {
      // One intentional operation; NEVER retry automatically.
      await client.buyStars(username, 50, { credentials });
    } else if (allowPurchase && purchaseKind === "premium") {
      await client.buyPremium(username, 3, { credentials });
    }
  }
} catch (error) {
  if (error instanceof FloodWaitError)
    console.log("FLOOD_WAIT seconds:", error.retryAfter);
  else if (error instanceof ApiError)
    console.log(
      error.name,
      error.status,
      "unknown purchase outcome:",
      error.purchaseOutcomeUnknown,
    );
  else throw error;
}

Davom eting

Telegram Stars API: username’ga Stars yuborish · Node.js / TypeScript SDK: Telegram Stars va Premium · Payment timeout: takroriy Telegram Stars xaridini oldini olish

OpenAPI 3.0 · Postman collection