Skip to content

Sozlash variantlari

@joyida/payme SDKsi moslashuvchan sozlash variantlari bilan ta'minlangan.

Merchant API sozlamalari

Merchant API uchun sozlash obyekti:

typescript
interface PaymeConfig {
  /** Ixtiyoriy; tarmoqqa yuborilmaydi (Merchant API faqat maxfiy kalit bilan Basic autentifikatsiya qiladi). Loglash uchun foydali. */
  merchantId?: string;
  readonly secretKey: string;
  baseURL?: string;
  timeout?: number;
}

Asosiy misol

typescript
import { PaymeMerchant } from '@joyida/payme';

const payme = new PaymeMerchant({
  secretKey: 'your_secret_key', // Majburiy
});

To'liq misol

typescript
import { PaymeMerchant } from '@joyida/payme';

const payme = new PaymeMerchant({
  merchantId: 'your_merchant_id', // Ixtiyoriy - loglash uchun
  secretKey: 'your_secret_key',     // Majburiy
  baseURL: 'https://checkout.paycom.uz/api', // Ixtiyoriy - ishlab chiqarish
  timeout: 10000,                 // Ixtiyoriy - millisekundlarda
});

Subscribe API sozlamalari

Subscribe API uchun sozlash obyekti:

typescript
interface PaymeSubscribeConfig {
  readonly merchantId: string;
  readonly password?: string;
  readonly baseURL?: string;
  readonly timeout?: number;
}

Klient tomon rejim

Kartalarni tokenizatsiya qilish uchun ishlatiladi (faqat merchantId kerak):

typescript
import { PaymeSubscribe } from '@joyida/payme';

const subscribeClient = new PaymeSubscribe({
  merchantId: 'your_merchant_id'
}, 'client');

// Karta yaratish mumkin
await subscribeClient.cardsCreate({...});

Server tomon rejim

Kartalarni boshqarish va chek yaratish uchun ishlatiladi (merchantId va parol kerak):

typescript
import { PaymeSubscribe } from '@joyida/payme';

const subscribeServer = new PaymeSubscribe({
  merchantId: 'your_merchant_id',
  password: 'your_password'
}, 'server');

// Chek yaratish mumkin
await subscribeServer.receiptsCreate({...});

Muhit o'zgaruvchilari

Maxfiy kalitlarni kodga yozish o'rniga muhit o'zgaruvchilaridan foydalaning:

.env fayli

bash
# Merchant API uchun
PAYME_SECRET_KEY=your_secret_key
PAYME_MERCHANT_ID=your_merchant_id

# Subscribe API uchun
PAYME_PASSWORD=your_password

Kodda ishlash

typescript
import { PaymeMerchant, PaymeSubscribe } from '@joyida/payme';

// Merchant API
const payme = new PaymeMerchant({
  merchantId: process.env.PAYME_MERCHANT_ID!,
  secretKey: process.env.PAYME_SECRET_KEY!,
});

// Subscribe API - server tomon
const subscribe = new PaymeSubscribe({
  merchantId: process.env.PAYME_MERCHANT_ID!,
  password: process.env.PAYME_PASSWORD!
}, 'server');

// Subscribe API - klient tomon
const subscribeClient = new PaymeSubscribe({
  merchantId: process.env.PAYME_MERCHANT_ID!
}, 'client');

Sozlash variantlari

secretKey (Majburiy)

Merchant API autentifikatsiyasi uchun Paymedan olingan maxfiy kalit.

typescript
const payme = new PaymeMerchant({
  secretKey: 'your_secret_key'
});

merchantId (Ixtiyoriy)

Savdochilik identifikatori. Tarmoqqa yuborilmaydi, faqat loglash uchun foydali.

typescript
const payme = new PaymeMerchant({
  merchantId: 'your_merchant_id', // Loglash uchun
  secretKey: 'your_secret_key'
});

baseURL (Ixtiyoriy)

Payme API asosiy URL manzili. Odatiy ishlab chiqarish URL:

typescript
// Ishlab chiqarish (default)
const payme = new PaymeMerchant({
  secretKey: 'your_secret_key',
  baseURL: 'https://checkout.paycom.uz/api'
});

// Test
const payme = new PaymeMerchant({
  secretKey: 'test_secret_key',
  baseURL: 'https://checkout.test.paycom.uz/api'
});

timeout (Ixtiyoriy)

So'rovlar uchun taymer (millisekundlarda). Odatiy qiymat: 30000 (30 soniya).

typescript
const payme = new PaymeMerchant({
  secretKey: 'your_secret_key',
  timeout: 15000 // 15 soniya
});

Debug rejim

Debug rejimini so'rovlar va javoblarni loglash uchun yoqing:

typescript
const payme = new PaymeMerchant({
  secretKey: 'your_secret_key',
  debug: true // So'rovlar va javoblarni loglash
});

Debug loglari faqat debug: true bo'lganda paydo' bo'ladi:

typescript
[Payme SDK Debug] Making request to https://checkout.paycom.uz/api
[Payme SDK Debug] Received response { status: 200, statusText: 'OK' }
[Payme SDK Debug] Request successful { allow: true }

Ishlab chiqarish va test muhitlari

Ishlab chiqarish

typescript
const payme = new PaymeMerchant({
  secretKey: process.env.PAYME_SECRET_KEY!,
  baseURL: 'https://checkout.paycom.uz/api'
});

Test

typescript
const payme = new PaymeMerchant({
  secretKey: process.env.PAYME_TEST_SECRET_KEY!,
  baseURL: 'https://checkout.test.paycom.uz/api'
});

To'liq misol

typescript
import { PaymeMerchant, PaymeSubscribe } from '@joyida/payme';

// Muhit o'zgaruvchilari
const config = {
  merchantId: process.env.PAYME_MERCHANT_ID!,
  secretKey: process.env.PAYME_SECRET_KEY!,
  password: process.env.PAYME_PASSWORD!,
  baseURL: process.env.NODE_ENV === 'test'
    ? 'https://checkout.test.paycom.uz/api'
    : 'https://checkout.paycom.uz/api',
  timeout: 10000,
  debug: process.env.NODE_ENV === 'development'
};

// Merchant API
const payme = new PaymeMerchant(config);

// Subscribe API - server tomon
const subscribe = new PaymeSubscribe({
  merchantId: config.merchantId,
  password: config.password,
  baseURL: config.baseURL,
  timeout: config.timeout,
  debug: config.debug
}, 'server');

// Subscribe API - klient tomon
const subscribeClient = new PaymeSubscribe({
  merchantId: config.merchantId,
  baseURL: config.baseURL,
  timeout: config.timeout,
  debug: config.debug
}, 'client');

MIT Lizenziyasi ostida chiqarilgan.