paytr.js 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,306 @@
1
+ # PayTR Node.js SDK
2
+
3
+ PayTR ödeme geçidi için modüler Node.js/TypeScript SDK.
4
+
5
+ ## Kurulum
6
+
7
+ ```bash
8
+ npm install @baris.gktp/paytr
9
+ # veya
10
+ yarn add @baris.gktp/paytr
11
+ # veya
12
+ pnpm add @baris.gktp/paytr
13
+ ```
14
+
15
+ ## ⚙️ Yapılandırma
16
+
17
+ ```typescript
18
+ import { PayTR } from '@baris.gktp/paytr';
19
+
20
+ const paytr = new PayTR({
21
+ merchantId: 'MAGAZA_NO',
22
+ merchantKey: 'API_KEY',
23
+ merchantSalt: 'API_SALT',
24
+ testMode: false, // Test modu (isteğe bağlı)
25
+ language: 'tr', // Dil: 'tr' veya 'en' (isteğe bağlı)
26
+ debugMode: false // Debug modu (isteğe bağlı)
27
+ });
28
+ ```
29
+
30
+ ## 📖 Kullanım
31
+
32
+ ### Direkt Ödeme (3D Secure)
33
+
34
+ ```typescript
35
+ // Ödeme formu verilerini hazırla
36
+ const payment = paytr.preparePayment({
37
+ merchantOid: `ORDER-${Date.now()}`,
38
+ email: 'musteri@example.com',
39
+ paymentAmount: 100.99,
40
+ currency: 'TL',
41
+ basketItems: [
42
+ { name: 'Ürün 1', price: 50.00, quantity: 1 },
43
+ { name: 'Ürün 2', price: 25.50, quantity: 2 }
44
+ ],
45
+ user: {
46
+ name: 'Müşteri Adı',
47
+ address: 'Müşteri Adresi',
48
+ phone: '05551234567'
49
+ },
50
+ merchantOkUrl: 'https://site.com/odeme/basarili',
51
+ merchantFailUrl: 'https://site.com/odeme/hata',
52
+ userIp: '192.168.1.1', // İsteğe bağlı
53
+ installmentCount: 0, // Taksit sayısı (0 = peşin)
54
+ non3d: false // 3D'siz işlem
55
+ });
56
+
57
+ // payment.formAction -> Form action URL'i
58
+ // payment.formData -> Hidden input verileri
59
+ // payment.token -> PayTR token
60
+ ```
61
+
62
+ ### Ödeme Callback Doğrulama
63
+
64
+ ```typescript
65
+ // Express.js / Next.js API Route
66
+ app.post('/api/paytr/callback', (req, res) => {
67
+ const isValid = paytr.verifyCallback(req.body);
68
+
69
+ if (!isValid) {
70
+ return res.status(400).send('Invalid hash');
71
+ }
72
+
73
+ const { merchant_oid, status, total_amount, utoken } = req.body;
74
+
75
+ if (status === 'success') {
76
+ // Siparişi onayla ve veritabanını güncelle
77
+ // utoken varsa kullanıcının kart token'ını kaydet
78
+ } else {
79
+ // Siparişi iptal et
80
+ }
81
+
82
+ res.send('OK'); // PayTR'a bildirimi aldığımızı bildir
83
+ });
84
+ ```
85
+
86
+ ### BIN Sorgulama
87
+
88
+ ```typescript
89
+ const result = await paytr.queryBIN('979203');
90
+
91
+ if (result.status === 'success') {
92
+ console.log('Banka:', result.issuer_name);
93
+ console.log('Kart Tipi:', result.card_type);
94
+ console.log('Kart Ailesi:', result.card_family);
95
+ }
96
+ ```
97
+
98
+ ### İade İşlemi
99
+
100
+ ```typescript
101
+ const result = await paytr.refund('ORDER-123', 50.00, 'REF-001');
102
+
103
+ if (result.status === 'success') {
104
+ console.log('İade başarılı');
105
+ } else {
106
+ console.error('Hata:', result.err_msg);
107
+ }
108
+ ```
109
+
110
+ ### İşlem Dökümü
111
+
112
+ ```typescript
113
+ const startDate = new Date('2024-01-01');
114
+ const endDate = new Date('2024-01-03'); // Max 3 gün aralık
115
+
116
+ const result = await paytr.getTransactions(startDate, endDate);
117
+
118
+ if (result.status === 'success' && result.transactions) {
119
+ result.transactions.forEach(tx => {
120
+ console.log(`${tx.merchant_oid}: ${tx.status} - ${tx.amount} ${tx.currency}`);
121
+ });
122
+ }
123
+ ```
124
+
125
+ ### Kayıtlı Kartlar
126
+
127
+ ```typescript
128
+ // Kart listesi
129
+ const cards = await paytr.listCards('user-token-xxx');
130
+
131
+ if (cards.status === 'success' && cards.cards) {
132
+ cards.cards.forEach(card => {
133
+ console.log(`${card.bank_name} - ****${card.c_last_four}`);
134
+ console.log('CVV Gerekli:', card.require_cvv === '1');
135
+ });
136
+ }
137
+
138
+ // Kart silme
139
+ const deleteResult = await paytr.deleteCard('user-token-xxx', 'card-token-xxx');
140
+ ```
141
+
142
+ ### Kayıtlı Kart ile Ödeme
143
+
144
+ ```typescript
145
+ const payment = paytr.prepareStoredCardPayment({
146
+ merchantOid: `ORDER-${Date.now()}`,
147
+ email: 'musteri@example.com',
148
+ paymentAmount: 100.99,
149
+ currency: 'TL',
150
+ basketItems: [{ name: 'Ürün', price: 100.99, quantity: 1 }],
151
+ user: { name: 'Ad Soyad', address: 'Adres', phone: '05551234567' },
152
+ merchantOkUrl: 'https://site.com/basarili',
153
+ merchantFailUrl: 'https://site.com/hata',
154
+ utoken: 'user-token-xxx',
155
+ ctoken: 'card-token-xxx',
156
+ requireCvv: true // Eğer kart CVV gerektiriyorsa
157
+ });
158
+ ```
159
+
160
+ ### Kart Saklayarak Ödeme
161
+
162
+ ```typescript
163
+ const payment = paytr.prepareSaveCardPayment({
164
+ merchantOid: `ORDER-${Date.now()}`,
165
+ email: 'musteri@example.com',
166
+ paymentAmount: 100.99,
167
+ currency: 'TL',
168
+ basketItems: [{ name: 'Ürün', price: 100.99, quantity: 1 }],
169
+ user: { name: 'Ad Soyad', address: 'Adres', phone: '05551234567' },
170
+ merchantOkUrl: 'https://site.com/basarili',
171
+ merchantFailUrl: 'https://site.com/hata',
172
+ storeCard: true,
173
+ utoken: 'existing-user-token' // Mevcut kullanıcı varsa
174
+ });
175
+ ```
176
+
177
+ ### Tekrarlı Ödeme (Recurring)
178
+
179
+ ```typescript
180
+ const payment = paytr.prepareRecurringPayment({
181
+ merchantOid: `RECURRING-${Date.now()}`,
182
+ email: 'musteri@example.com',
183
+ paymentAmount: 49.99,
184
+ currency: 'TL',
185
+ basketItems: [{ name: 'Aylık Abonelik', price: 49.99, quantity: 1 }],
186
+ user: { name: 'Ad Soyad', address: 'Adres', phone: '05551234567' },
187
+ merchantOkUrl: 'https://site.com/basarili',
188
+ merchantFailUrl: 'https://site.com/hata',
189
+ utoken: 'user-token-xxx',
190
+ ctoken: 'card-token-xxx'
191
+ });
192
+ ```
193
+
194
+ ### Sipariş Durumu Sorgulama
195
+
196
+ ```typescript
197
+ const result = await paytr.getOrderStatus('ORDER-123');
198
+
199
+ if (result.status === 'success') {
200
+ console.log('Ödeme Durumu:', result.payment_status);
201
+ // 'waiting' | 'success' | 'failed'
202
+ }
203
+ ```
204
+
205
+ ### Taksit Oranları
206
+
207
+ ```typescript
208
+ const result = await paytr.getInstallmentRates();
209
+
210
+ if (result.status === 'success') {
211
+ console.log('Taksit Oranları:', result.raw);
212
+ }
213
+ ```
214
+
215
+ ## 🔧 Next.js / Nuxt Entegrasyonu
216
+
217
+ ### Next.js API Route
218
+
219
+ ```typescript
220
+ // app/api/payment/route.ts
221
+ import { PayTR } from '@baris.gktp/paytr';
222
+
223
+ const paytr = new PayTR({
224
+ merchantId: process.env.PAYTR_MERCHANT_ID!,
225
+ merchantKey: process.env.PAYTR_MERCHANT_KEY!,
226
+ merchantSalt: process.env.PAYTR_MERCHANT_SALT!
227
+ });
228
+
229
+ export async function POST(request: Request) {
230
+ const body = await request.json();
231
+
232
+ const payment = paytr.preparePayment({
233
+ merchantOid: `ORDER-${Date.now()}`,
234
+ email: body.email,
235
+ paymentAmount: body.amount,
236
+ currency: 'TL',
237
+ basketItems: body.items,
238
+ user: body.user,
239
+ merchantOkUrl: `${process.env.NEXT_PUBLIC_URL}/payment/success`,
240
+ merchantFailUrl: `${process.env.NEXT_PUBLIC_URL}/payment/failed`,
241
+ userIp: request.headers.get('x-forwarded-for') || ''
242
+ });
243
+
244
+ return Response.json(payment);
245
+ }
246
+ ```
247
+
248
+ ### Nuxt Server Route
249
+
250
+ ```typescript
251
+ // server/api/payment.post.ts
252
+ import { PayTR } from '@baris.gktp/paytr';
253
+
254
+ const paytr = new PayTR({
255
+ merchantId: process.env.PAYTR_MERCHANT_ID!,
256
+ merchantKey: process.env.PAYTR_MERCHANT_KEY!,
257
+ merchantSalt: process.env.PAYTR_MERCHANT_SALT!
258
+ });
259
+
260
+ export default defineEventHandler(async (event) => {
261
+ const body = await readBody(event);
262
+
263
+ const payment = paytr.preparePayment({
264
+ merchantOid: `ORDER-${Date.now()}`,
265
+ email: body.email,
266
+ paymentAmount: body.amount,
267
+ currency: 'TL',
268
+ basketItems: body.items,
269
+ user: body.user,
270
+ merchantOkUrl: `${process.env.NUXT_PUBLIC_URL}/odeme/basarili`,
271
+ merchantFailUrl: `${process.env.NUXT_PUBLIC_URL}/odeme/hata`,
272
+ userIp: getHeader(event, 'x-forwarded-for') || ''
273
+ });
274
+
275
+ return payment;
276
+ });
277
+ ```
278
+
279
+ ## 📋 API Referansı
280
+
281
+ | Metod | Açıklama |
282
+ |-------|----------|
283
+ | `preparePayment(options)` | Direkt ödeme formu hazırlar |
284
+ | `prepareSaveCardPayment(options)` | Kart saklayarak ödeme formu hazırlar |
285
+ | `prepareStoredCardPayment(options)` | Kayıtlı kart ile ödeme formu hazırlar |
286
+ | `prepareRecurringPayment(options)` | Tekrarlı ödeme formu hazırlar |
287
+ | `verifyCallback(callback)` | Ödeme bildirimini doğrular |
288
+ | `queryBIN(binNumber)` | BIN sorgulama yapar |
289
+ | `refund(merchantOid, amount, referenceNo?)` | İade işlemi yapar |
290
+ | `getTransactions(startDate, endDate)` | İşlem dökümü getirir |
291
+ | `listCards(utoken)` | Kayıtlı kartları listeler |
292
+ | `deleteCard(utoken, ctoken)` | Kayıtlı kartı siler |
293
+ | `getOrderStatus(merchantOid)` | Sipariş durumu sorgular |
294
+ | `getInstallmentRates()` | Taksit oranlarını getirir |
295
+
296
+ ## 📝 Test Kartı
297
+
298
+ ```
299
+ Kart Numarası: 9792030394440796
300
+ Son Kullanma: 12/24
301
+ CVV: 000
302
+ ```
303
+
304
+ ## 📄 Lisans
305
+
306
+ MIT
@@ -0,0 +1,46 @@
1
+ /**
2
+ * PayTR API Endpoints and Default Values
3
+ */
4
+ /** PayTR API base URL */
5
+ export declare const PAYTR_BASE_URL = "https://www.paytr.com";
6
+ /** PayTR API Endpoints */
7
+ export declare const ENDPOINTS: {
8
+ /** Ödeme formu gönderim URL'i */
9
+ readonly PAYMENT_FORM: "https://www.paytr.com/odeme";
10
+ /** BIN sorgulama */
11
+ readonly BIN_QUERY: "https://www.paytr.com/odeme/api/bin-detail";
12
+ /** İade işlemi */
13
+ readonly REFUND: "https://www.paytr.com/odeme/iade";
14
+ /** İşlem dökümü */
15
+ readonly TRANSACTION_LOG: "https://www.paytr.com/rapor/islem-dokumu";
16
+ /** Kayıtlı kart listesi */
17
+ readonly CARD_LIST: "https://www.paytr.com/odeme/capi/list";
18
+ /** Kart silme */
19
+ readonly CARD_DELETE: "https://www.paytr.com/odeme/capi/delete";
20
+ /** Sipariş durumu */
21
+ readonly ORDER_STATUS: "https://www.paytr.com/odeme/durum-sorgu";
22
+ /** Taksit oranları */
23
+ readonly INSTALLMENT_RATES: "https://www.paytr.com/odeme/taksit-oranlari";
24
+ };
25
+ /** Varsayılan değerler */
26
+ export declare const DEFAULTS: {
27
+ /** Varsayılan dil */
28
+ readonly LANGUAGE: "tr";
29
+ /** Varsayılan para birimi */
30
+ readonly CURRENCY: "TL";
31
+ /** Varsayılan ödeme tipi */
32
+ readonly PAYMENT_TYPE: "card";
33
+ /** Varsayılan taksit sayısı (peşin) */
34
+ readonly INSTALLMENT_COUNT: 0;
35
+ /** Debug modu kapalı */
36
+ readonly DEBUG_MODE: false;
37
+ /** Test modu kapalı */
38
+ readonly TEST_MODE: false;
39
+ /** 3D güvenlik aktif */
40
+ readonly NON_3D: false;
41
+ };
42
+ /** HTTP Headers */
43
+ export declare const HEADERS: {
44
+ readonly 'Content-Type': "application/x-www-form-urlencoded";
45
+ };
46
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yBAAyB;AACzB,eAAO,MAAM,cAAc,0BAA0B,CAAC;AAEtD,0BAA0B;AAC1B,eAAO,MAAM,SAAS;IACpB,iCAAiC;;IAGjC,oBAAoB;;IAGpB,kBAAkB;;IAGlB,mBAAmB;;IAGnB,2BAA2B;;IAG3B,iBAAiB;;IAGjB,qBAAqB;;IAGrB,sBAAsB;;CAEd,CAAC;AAEX,0BAA0B;AAC1B,eAAO,MAAM,QAAQ;IACnB,qBAAqB;;IAGrB,6BAA6B;;IAG7B,4BAA4B;;IAG5B,uCAAuC;;IAGvC,wBAAwB;;IAGxB,uBAAuB;;IAGvB,wBAAwB;;CAEhB,CAAC;AAEX,mBAAmB;AACnB,eAAO,MAAM,OAAO;;CAEV,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * PayTR API Endpoints and Default Values
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HEADERS = exports.DEFAULTS = exports.ENDPOINTS = exports.PAYTR_BASE_URL = void 0;
7
+ /** PayTR API base URL */
8
+ exports.PAYTR_BASE_URL = 'https://www.paytr.com';
9
+ /** PayTR API Endpoints */
10
+ exports.ENDPOINTS = {
11
+ /** Ödeme formu gönderim URL'i */
12
+ PAYMENT_FORM: `${exports.PAYTR_BASE_URL}/odeme`,
13
+ /** BIN sorgulama */
14
+ BIN_QUERY: `${exports.PAYTR_BASE_URL}/odeme/api/bin-detail`,
15
+ /** İade işlemi */
16
+ REFUND: `${exports.PAYTR_BASE_URL}/odeme/iade`,
17
+ /** İşlem dökümü */
18
+ TRANSACTION_LOG: `${exports.PAYTR_BASE_URL}/rapor/islem-dokumu`,
19
+ /** Kayıtlı kart listesi */
20
+ CARD_LIST: `${exports.PAYTR_BASE_URL}/odeme/capi/list`,
21
+ /** Kart silme */
22
+ CARD_DELETE: `${exports.PAYTR_BASE_URL}/odeme/capi/delete`,
23
+ /** Sipariş durumu */
24
+ ORDER_STATUS: `${exports.PAYTR_BASE_URL}/odeme/durum-sorgu`,
25
+ /** Taksit oranları */
26
+ INSTALLMENT_RATES: `${exports.PAYTR_BASE_URL}/odeme/taksit-oranlari`,
27
+ };
28
+ /** Varsayılan değerler */
29
+ exports.DEFAULTS = {
30
+ /** Varsayılan dil */
31
+ LANGUAGE: 'tr',
32
+ /** Varsayılan para birimi */
33
+ CURRENCY: 'TL',
34
+ /** Varsayılan ödeme tipi */
35
+ PAYMENT_TYPE: 'card',
36
+ /** Varsayılan taksit sayısı (peşin) */
37
+ INSTALLMENT_COUNT: 0,
38
+ /** Debug modu kapalı */
39
+ DEBUG_MODE: false,
40
+ /** Test modu kapalı */
41
+ TEST_MODE: false,
42
+ /** 3D güvenlik aktif */
43
+ NON_3D: false,
44
+ };
45
+ /** HTTP Headers */
46
+ exports.HEADERS = {
47
+ 'Content-Type': 'application/x-www-form-urlencoded',
48
+ };
49
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yBAAyB;AACZ,QAAA,cAAc,GAAG,uBAAuB,CAAC;AAEtD,0BAA0B;AACb,QAAA,SAAS,GAAG;IACvB,iCAAiC;IACjC,YAAY,EAAE,GAAG,sBAAc,QAAQ;IAEvC,oBAAoB;IACpB,SAAS,EAAE,GAAG,sBAAc,uBAAuB;IAEnD,kBAAkB;IAClB,MAAM,EAAE,GAAG,sBAAc,aAAa;IAEtC,mBAAmB;IACnB,eAAe,EAAE,GAAG,sBAAc,qBAAqB;IAEvD,2BAA2B;IAC3B,SAAS,EAAE,GAAG,sBAAc,kBAAkB;IAE9C,iBAAiB;IACjB,WAAW,EAAE,GAAG,sBAAc,oBAAoB;IAElD,qBAAqB;IACrB,YAAY,EAAE,GAAG,sBAAc,oBAAoB;IAEnD,sBAAsB;IACtB,iBAAiB,EAAE,GAAG,sBAAc,wBAAwB;CACpD,CAAC;AAEX,0BAA0B;AACb,QAAA,QAAQ,GAAG;IACtB,qBAAqB;IACrB,QAAQ,EAAE,IAAa;IAEvB,6BAA6B;IAC7B,QAAQ,EAAE,IAAa;IAEvB,4BAA4B;IAC5B,YAAY,EAAE,MAAe;IAE7B,uCAAuC;IACvC,iBAAiB,EAAE,CAAC;IAEpB,wBAAwB;IACxB,UAAU,EAAE,KAAK;IAEjB,uBAAuB;IACvB,SAAS,EAAE,KAAK;IAEhB,wBAAwB;IACxB,MAAM,EAAE,KAAK;CACL,CAAC;AAEX,mBAAmB;AACN,QAAA,OAAO,GAAG;IACrB,cAAc,EAAE,mCAAmC;CAC3C,CAAC"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * PayTR Node.js SDK
3
+ *
4
+ * PayTR ödeme geçidi için modüler Node.js/TypeScript SDK.
5
+ * React, Nuxt, Next.js ve Vue backend'lerinde kullanılabilir.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { PayTR } from 'paytr-node';
10
+ *
11
+ * const paytr = new PayTR({
12
+ * merchantId: 'YOUR_MERCHANT_ID',
13
+ * merchantKey: 'YOUR_MERCHANT_KEY',
14
+ * merchantSalt: 'YOUR_MERCHANT_SALT'
15
+ * });
16
+ *
17
+ * // Ödeme formu hazırla
18
+ * const payment = paytr.preparePayment({
19
+ * merchantOid: 'ORDER-123',
20
+ * email: 'customer@example.com',
21
+ * paymentAmount: 100.99,
22
+ * currency: 'TL',
23
+ * basketItems: [{ name: 'Ürün', price: 100.99, quantity: 1 }],
24
+ * user: { name: 'Müşteri Adı', address: 'Adres', phone: '05551234567' },
25
+ * merchantOkUrl: 'https://site.com/basarili',
26
+ * merchantFailUrl: 'https://site.com/hata'
27
+ * });
28
+ * ```
29
+ */
30
+ import type { PayTRConfig, PaymentOptions, SaveCardPaymentOptions, StoredCardPaymentOptions, RecurringPaymentOptions, PreparedPayment, PaymentCallback, BINQueryResult, RefundResult, TransactionLogResult, CardListResult, DeleteCardResult, OrderStatusResult, InstallmentRatesResult } from './types';
31
+ /**
32
+ * PayTR SDK ana sınıfı
33
+ */
34
+ export declare class PayTR {
35
+ private readonly config;
36
+ /**
37
+ * PayTR SDK'yı başlatır
38
+ * @param config - Mağaza yapılandırması
39
+ */
40
+ constructor(config: PayTRConfig);
41
+ /**
42
+ * Direkt ödeme için form verilerini hazırlar
43
+ *
44
+ * @param options - Ödeme parametreleri
45
+ * @returns Form verileri ve token
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const payment = paytr.preparePayment({
50
+ * merchantOid: 'ORDER-123',
51
+ * email: 'customer@example.com',
52
+ * paymentAmount: 100.99,
53
+ * currency: 'TL',
54
+ * basketItems: [{ name: 'Ürün', price: 100.99, quantity: 1 }],
55
+ * user: { name: 'Ad Soyad', address: 'Adres', phone: '05551234567' },
56
+ * merchantOkUrl: 'https://site.com/basarili',
57
+ * merchantFailUrl: 'https://site.com/hata'
58
+ * });
59
+ *
60
+ * // Frontend'de form oluştur ve gönder
61
+ * ```
62
+ */
63
+ preparePayment(options: PaymentOptions): PreparedPayment;
64
+ /**
65
+ * Kart saklayarak ödeme için form verilerini hazırlar
66
+ *
67
+ * @param options - Ödeme parametreleri (storeCard: true olmalı)
68
+ * @returns Form verileri ve token
69
+ */
70
+ prepareSaveCardPayment(options: SaveCardPaymentOptions): PreparedPayment;
71
+ /**
72
+ * Kayıtlı kart ile ödeme için form verilerini hazırlar
73
+ *
74
+ * @param options - Kayıtlı kart ödeme parametreleri
75
+ * @returns Form verileri ve token
76
+ */
77
+ prepareStoredCardPayment(options: StoredCardPaymentOptions): PreparedPayment;
78
+ /**
79
+ * Tekrarlı ödeme için form verilerini hazırlar
80
+ *
81
+ * @param options - Tekrarlı ödeme parametreleri
82
+ * @returns Form verileri ve token
83
+ */
84
+ prepareRecurringPayment(options: RecurringPaymentOptions): PreparedPayment;
85
+ /**
86
+ * PayTR ödeme bildirimini doğrular
87
+ *
88
+ * @param callback - PayTR'dan gelen callback verisi
89
+ * @returns Doğrulama başarılı mı?
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * // Express/Next.js API route
94
+ * app.post('/api/paytr/callback', (req, res) => {
95
+ * const isValid = paytr.verifyCallback(req.body);
96
+ *
97
+ * if (!isValid) {
98
+ * return res.status(400).send('Invalid hash');
99
+ * }
100
+ *
101
+ * if (req.body.status === 'success') {
102
+ * // Siparişi onayla
103
+ * }
104
+ *
105
+ * res.send('OK');
106
+ * });
107
+ * ```
108
+ */
109
+ verifyCallback(callback: PaymentCallback): boolean;
110
+ /**
111
+ * Kart BIN numarasını sorgular
112
+ *
113
+ * @param binNumber - Kartın ilk 6 veya 8 hanesi
114
+ * @returns BIN sorgu sonucu
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const result = await paytr.queryBIN('979203');
119
+ * if (result.status === 'success') {
120
+ * console.log('Banka:', result.issuer_name);
121
+ * console.log('Kart Tipi:', result.card_type);
122
+ * }
123
+ * ```
124
+ */
125
+ queryBIN(binNumber: string): Promise<BINQueryResult>;
126
+ /**
127
+ * Ödeme iadesi yapar
128
+ *
129
+ * @param merchantOid - Sipariş numarası
130
+ * @param returnAmount - İade tutarı
131
+ * @param referenceNo - Referans numarası (isteğe bağlı)
132
+ * @returns İade sonucu
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const result = await paytr.refund('ORDER-123', 50.00);
137
+ * if (result.status === 'success') {
138
+ * console.log('İade başarılı');
139
+ * }
140
+ * ```
141
+ */
142
+ refund(merchantOid: string, returnAmount: number, referenceNo?: string): Promise<RefundResult>;
143
+ /**
144
+ * İşlem dökümünü getirir (max 3 gün aralık)
145
+ *
146
+ * @param startDate - Başlangıç tarihi
147
+ * @param endDate - Bitiş tarihi
148
+ * @returns İşlem dökümü
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const start = new Date('2024-01-01');
153
+ * const end = new Date('2024-01-03');
154
+ * const result = await paytr.getTransactions(start, end);
155
+ * ```
156
+ */
157
+ getTransactions(startDate: Date, endDate: Date): Promise<TransactionLogResult>;
158
+ /**
159
+ * Kullanıcının kayıtlı kartlarını listeler
160
+ *
161
+ * @param utoken - Kullanıcı token'ı
162
+ * @returns Kart listesi
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const result = await paytr.listCards('user-token-xxx');
167
+ * if (result.status === 'success' && result.cards) {
168
+ * result.cards.forEach(card => {
169
+ * console.log(`${card.bank_name} - ****${card.c_last_four}`);
170
+ * });
171
+ * }
172
+ * ```
173
+ */
174
+ listCards(utoken: string): Promise<CardListResult>;
175
+ /**
176
+ * Kayıtlı kartı siler
177
+ *
178
+ * @param utoken - Kullanıcı token'ı
179
+ * @param ctoken - Kart token'ı
180
+ * @returns Silme sonucu
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const result = await paytr.deleteCard('user-token', 'card-token');
185
+ * ```
186
+ */
187
+ deleteCard(utoken: string, ctoken: string): Promise<DeleteCardResult>;
188
+ /**
189
+ * Sipariş durumunu sorgular
190
+ *
191
+ * @param merchantOid - Sipariş numarası
192
+ * @returns Sipariş durumu
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * const result = await paytr.getOrderStatus('ORDER-123');
197
+ * console.log('Durum:', result.payment_status);
198
+ * ```
199
+ */
200
+ getOrderStatus(merchantOid: string): Promise<OrderStatusResult>;
201
+ /**
202
+ * Taksit oranlarını getirir
203
+ *
204
+ * @returns Taksit oranları
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * const result = await paytr.getInstallmentRates();
209
+ * if (result.status === 'success') {
210
+ * console.log('Taksit oranları:', result.raw);
211
+ * }
212
+ * ```
213
+ */
214
+ getInstallmentRates(): Promise<InstallmentRatesResult>;
215
+ }
216
+ export * from './types';
217
+ export { ENDPOINTS, DEFAULTS } from './constants';
218
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAYH,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAE/C;;;OAGG;gBACS,MAAM,EAAE,WAAW;IAe/B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe;IAwDxD;;;;;OAKG;IACH,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe;IAYxE;;;;;OAKG;IACH,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,GAAG,eAAe;IAiB5E;;;;;OAKG;IACH,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,eAAe;IAe1E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAgBlD;;;;;;;;;;;;;;OAcG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAe1D;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC;IA4BxB;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwBpF;;;;;;;;;;;;;;;OAeG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAWxD;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgB3E;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmBrE;;;;;;;;;;;;OAYG;IACG,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,CAAC;CA4B7D;AAGD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}