paytr.js 0.0.2 → 0.0.5
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 +156 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +12 -0
- package/dist/constants.js.map +1 -1
- package/dist/esm/constants.d.ts +10 -0
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +12 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.d.ts +145 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +359 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +287 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +107 -0
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.d.ts +7 -0
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +12 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/index.d.ts +145 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +359 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +287 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +109 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -59,6 +59,49 @@ const payment = paytr.preparePayment({
|
|
|
59
59
|
// payment.token -> PayTR token
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
### Direct API (Server-Side Ödeme)
|
|
63
|
+
|
|
64
|
+
⚠️ **DİKKAT:** Bu yöntem PCI-DSS uyumluluğu gerektirir!
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
// Kart bilgileri ile server-side ödeme
|
|
68
|
+
const result = await paytr.processDirectPayment({
|
|
69
|
+
merchantOid: `ORDER-${Date.now()}`,
|
|
70
|
+
email: 'musteri@example.com',
|
|
71
|
+
paymentAmount: 100.99,
|
|
72
|
+
currency: 'TL',
|
|
73
|
+
basketItems: [{ name: 'Ürün', price: 100.99, quantity: 1 }],
|
|
74
|
+
user: {
|
|
75
|
+
name: 'Müşteri Adı',
|
|
76
|
+
address: 'Müşteri Adresi',
|
|
77
|
+
phone: '05551234567'
|
|
78
|
+
},
|
|
79
|
+
merchantOkUrl: 'https://site.com/odeme/basarili',
|
|
80
|
+
merchantFailUrl: 'https://site.com/odeme/hata',
|
|
81
|
+
cardInfo: {
|
|
82
|
+
ccOwner: 'KART SAHİBİ ADI',
|
|
83
|
+
cardNumber: '9792030394440796',
|
|
84
|
+
expiryMonth: '12',
|
|
85
|
+
expiryYear: '25',
|
|
86
|
+
cvv: '000'
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
if (result.status === 'redirect') {
|
|
91
|
+
// 3D Secure yönlendirmesi - HTML'i kullanıcıya göster
|
|
92
|
+
return new Response(result.redirectHtml, {
|
|
93
|
+
headers: { 'Content-Type': 'text/html' }
|
|
94
|
+
});
|
|
95
|
+
} else if (result.status === 'success') {
|
|
96
|
+
// Ödeme başarılı (non-3D)
|
|
97
|
+
console.log('Ödeme tamamlandı!');
|
|
98
|
+
} else {
|
|
99
|
+
// Hata
|
|
100
|
+
console.error('Hata:', result.errMsg);
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
|
|
62
105
|
### Ödeme Callback Doğrulama
|
|
63
106
|
|
|
64
107
|
```typescript
|
|
@@ -212,6 +255,112 @@ if (result.status === 'success') {
|
|
|
212
255
|
}
|
|
213
256
|
```
|
|
214
257
|
|
|
258
|
+
### Platform Transfer (Marketplace)
|
|
259
|
+
|
|
260
|
+
#### Transfer İşlemi
|
|
261
|
+
|
|
262
|
+
```typescript
|
|
263
|
+
// Alt mağazaya ödeme transferi
|
|
264
|
+
const result = await paytr.platformTransfer({
|
|
265
|
+
merchantOid: 'ORDER-123',
|
|
266
|
+
transId: 'TRANS-456',
|
|
267
|
+
submerchantAmount: 8000, // 80.00 TL (kuruş cinsinden)
|
|
268
|
+
totalAmount: 10000, // 100.00 TL (kuruş cinsinden)
|
|
269
|
+
transferName: 'Alt Mağaza Adı',
|
|
270
|
+
transferIban: 'TR123456789012345678901234'
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
if (result.status === 'success') {
|
|
274
|
+
console.log('Transfer başarılı');
|
|
275
|
+
} else {
|
|
276
|
+
console.error('Hata:', result.err_msg);
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
#### Geri Dönen Ödemeler Listesi
|
|
281
|
+
|
|
282
|
+
```typescript
|
|
283
|
+
const startDate = new Date('2024-01-01');
|
|
284
|
+
const endDate = new Date('2024-01-31');
|
|
285
|
+
|
|
286
|
+
const result = await paytr.getReturnedPayments(startDate, endDate);
|
|
287
|
+
|
|
288
|
+
if (result.status === 'success' && result.data) {
|
|
289
|
+
result.data.forEach(payment => {
|
|
290
|
+
console.log(`${payment.merchant_oid}: ${payment.amount} - ${payment.return_reason}`);
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
#### Geri Dönen Ödemeyi Transfer Et
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
const result = await paytr.sendReturnedPayment('TRANS-123', [
|
|
299
|
+
{
|
|
300
|
+
trans_id: 'SUB-1',
|
|
301
|
+
submerchant_amount: 5000,
|
|
302
|
+
transfer_name: 'Alt Mağaza 1',
|
|
303
|
+
transfer_iban: 'TR123456789012345678901234'
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
trans_id: 'SUB-2',
|
|
307
|
+
submerchant_amount: 3000,
|
|
308
|
+
transfer_name: 'Alt Mağaza 2',
|
|
309
|
+
transfer_iban: 'TR987654321098765432109876'
|
|
310
|
+
}
|
|
311
|
+
]);
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
#### Platform Transfer Callback Doğrulama
|
|
315
|
+
|
|
316
|
+
```typescript
|
|
317
|
+
// Express.js / Next.js API Route
|
|
318
|
+
app.post('/api/platform-callback', (req, res) => {
|
|
319
|
+
const isValid = paytr.verifyPlatformTransferCallback(req.body);
|
|
320
|
+
|
|
321
|
+
if (!isValid) {
|
|
322
|
+
return res.status(400).send('Invalid hash');
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// Transfer işlemini onayla
|
|
326
|
+
res.send('OK');
|
|
327
|
+
});
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Ödeme Raporları
|
|
331
|
+
|
|
332
|
+
#### Ödeme Özeti
|
|
333
|
+
|
|
334
|
+
```typescript
|
|
335
|
+
const startDate = new Date('2024-01-01');
|
|
336
|
+
const endDate = new Date('2024-01-31');
|
|
337
|
+
|
|
338
|
+
const result = await paytr.getPaymentSummary(startDate, endDate);
|
|
339
|
+
|
|
340
|
+
if (result.status === 'success') {
|
|
341
|
+
console.log('Toplam Ödeme:', result.total_count);
|
|
342
|
+
console.log('Başarılı:', result.success_count);
|
|
343
|
+
console.log('Başarısız:', result.failed_count);
|
|
344
|
+
console.log('Toplam Tutar:', result.total_amount);
|
|
345
|
+
}
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
#### Günlük Ödeme Detayı
|
|
349
|
+
|
|
350
|
+
```typescript
|
|
351
|
+
const date = new Date('2024-01-15');
|
|
352
|
+
|
|
353
|
+
const result = await paytr.getPaymentDetail(date);
|
|
354
|
+
|
|
355
|
+
if (result.status === 'success' && result.data) {
|
|
356
|
+
result.data.forEach(payment => {
|
|
357
|
+
console.log(`${payment.merchant_oid}: ${payment.payment_amount} ${payment.currency}`);
|
|
358
|
+
console.log(`Durum: ${payment.payment_status}`);
|
|
359
|
+
console.log(`Taksit: ${payment.installment_count}`);
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
```
|
|
363
|
+
|
|
215
364
|
## 🔧 Next.js / Nuxt Entegrasyonu
|
|
216
365
|
|
|
217
366
|
### Next.js API Route
|
|
@@ -284,6 +433,7 @@ export default defineEventHandler(async (event) => {
|
|
|
284
433
|
| `prepareSaveCardPayment(options)` | Kart saklayarak ödeme formu hazırlar |
|
|
285
434
|
| `prepareStoredCardPayment(options)` | Kayıtlı kart ile ödeme formu hazırlar |
|
|
286
435
|
| `prepareRecurringPayment(options)` | Tekrarlı ödeme formu hazırlar |
|
|
436
|
+
| `processDirectPayment(options)` | Server-side direkt ödeme işlemi yapar |
|
|
287
437
|
| `verifyCallback(callback)` | Ödeme bildirimini doğrular |
|
|
288
438
|
| `queryBIN(binNumber)` | BIN sorgulama yapar |
|
|
289
439
|
| `refund(merchantOid, amount, referenceNo?)` | İade işlemi yapar |
|
|
@@ -292,6 +442,12 @@ export default defineEventHandler(async (event) => {
|
|
|
292
442
|
| `deleteCard(utoken, ctoken)` | Kayıtlı kartı siler |
|
|
293
443
|
| `getOrderStatus(merchantOid)` | Sipariş durumu sorgular |
|
|
294
444
|
| `getInstallmentRates()` | Taksit oranlarını getirir |
|
|
445
|
+
| `platformTransfer(params)` | Platform transfer işlemi yapar (Marketplace) |
|
|
446
|
+
| `getReturnedPayments(startDate, endDate)` | Geri dönen ödemeleri listeler |
|
|
447
|
+
| `sendReturnedPayment(transId, transfers)` | Geri dönen ödemeyi transfer eder |
|
|
448
|
+
| `verifyPlatformTransferCallback(callback)` | Platform transfer callback'ini doğrular |
|
|
449
|
+
| `getPaymentSummary(startDate, endDate)` | Ödeme özeti raporunu getirir |
|
|
450
|
+
| `getPaymentDetail(date)` | Belirli bir günün ödeme detaylarını getirir |
|
|
295
451
|
|
|
296
452
|
## 📝 Test Kartı
|
|
297
453
|
|
package/dist/constants.d.ts
CHANGED
|
@@ -21,6 +21,16 @@ export declare const ENDPOINTS: {
|
|
|
21
21
|
readonly ORDER_STATUS: "https://www.paytr.com/odeme/durum-sorgu";
|
|
22
22
|
/** Taksit oranları */
|
|
23
23
|
readonly INSTALLMENT_RATES: "https://www.paytr.com/odeme/taksit-oranlari";
|
|
24
|
+
/** Platform transfer */
|
|
25
|
+
readonly PLATFORM_TRANSFER: "https://www.paytr.com/odeme/platform/transfer";
|
|
26
|
+
/** Geri dönen ödemeler listesi */
|
|
27
|
+
readonly RETURNED_PAYMENTS: "https://www.paytr.com/odeme/geri-donen-transfer";
|
|
28
|
+
/** Hesaptan gönder */
|
|
29
|
+
readonly SEND_FROM_ACCOUNT: "https://www.paytr.com/odeme/hesaptan-gonder";
|
|
30
|
+
/** Ödeme dökümü */
|
|
31
|
+
readonly PAYMENT_SUMMARY: "https://www.paytr.com/rapor/odeme-dokumu";
|
|
32
|
+
/** Ödeme detayı */
|
|
33
|
+
readonly PAYMENT_DETAIL: "https://www.paytr.com/rapor/odeme-detayi";
|
|
24
34
|
};
|
|
25
35
|
/** Varsayılan değerler */
|
|
26
36
|
export declare const DEFAULTS: {
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +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;;
|
|
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;;IAItB,wBAAwB;;IAExB,kCAAkC;;IAElC,sBAAsB;;IAItB,mBAAmB;;IAEnB,mBAAmB;;CAEX,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"}
|
package/dist/constants.js
CHANGED
|
@@ -24,6 +24,18 @@ exports.ENDPOINTS = {
|
|
|
24
24
|
ORDER_STATUS: `${exports.PAYTR_BASE_URL}/odeme/durum-sorgu`,
|
|
25
25
|
/** Taksit oranları */
|
|
26
26
|
INSTALLMENT_RATES: `${exports.PAYTR_BASE_URL}/odeme/taksit-oranlari`,
|
|
27
|
+
// Platform Transfer (Marketplace)
|
|
28
|
+
/** Platform transfer */
|
|
29
|
+
PLATFORM_TRANSFER: `${exports.PAYTR_BASE_URL}/odeme/platform/transfer`,
|
|
30
|
+
/** Geri dönen ödemeler listesi */
|
|
31
|
+
RETURNED_PAYMENTS: `${exports.PAYTR_BASE_URL}/odeme/geri-donen-transfer`,
|
|
32
|
+
/** Hesaptan gönder */
|
|
33
|
+
SEND_FROM_ACCOUNT: `${exports.PAYTR_BASE_URL}/odeme/hesaptan-gonder`,
|
|
34
|
+
// Payment Reports
|
|
35
|
+
/** Ödeme dökümü */
|
|
36
|
+
PAYMENT_SUMMARY: `${exports.PAYTR_BASE_URL}/rapor/odeme-dokumu`,
|
|
37
|
+
/** Ödeme detayı */
|
|
38
|
+
PAYMENT_DETAIL: `${exports.PAYTR_BASE_URL}/rapor/odeme-detayi`,
|
|
27
39
|
};
|
|
28
40
|
/** Varsayılan değerler */
|
|
29
41
|
exports.DEFAULTS = {
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +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;
|
|
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;IAE5D,kCAAkC;IAClC,wBAAwB;IACxB,iBAAiB,EAAE,GAAG,sBAAc,0BAA0B;IAC9D,kCAAkC;IAClC,iBAAiB,EAAE,GAAG,sBAAc,4BAA4B;IAChE,sBAAsB;IACtB,iBAAiB,EAAE,GAAG,sBAAc,wBAAwB;IAE5D,kBAAkB;IAClB,mBAAmB;IACnB,eAAe,EAAE,GAAG,sBAAc,qBAAqB;IACvD,mBAAmB;IACnB,cAAc,EAAE,GAAG,sBAAc,qBAAqB;CAC9C,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"}
|
package/dist/esm/constants.d.ts
CHANGED
|
@@ -21,6 +21,16 @@ export declare const ENDPOINTS: {
|
|
|
21
21
|
readonly ORDER_STATUS: "https://www.paytr.com/odeme/durum-sorgu";
|
|
22
22
|
/** Taksit oranları */
|
|
23
23
|
readonly INSTALLMENT_RATES: "https://www.paytr.com/odeme/taksit-oranlari";
|
|
24
|
+
/** Platform transfer */
|
|
25
|
+
readonly PLATFORM_TRANSFER: "https://www.paytr.com/odeme/platform/transfer";
|
|
26
|
+
/** Geri dönen ödemeler listesi */
|
|
27
|
+
readonly RETURNED_PAYMENTS: "https://www.paytr.com/odeme/geri-donen-transfer";
|
|
28
|
+
/** Hesaptan gönder */
|
|
29
|
+
readonly SEND_FROM_ACCOUNT: "https://www.paytr.com/odeme/hesaptan-gonder";
|
|
30
|
+
/** Ödeme dökümü */
|
|
31
|
+
readonly PAYMENT_SUMMARY: "https://www.paytr.com/rapor/odeme-dokumu";
|
|
32
|
+
/** Ödeme detayı */
|
|
33
|
+
readonly PAYMENT_DETAIL: "https://www.paytr.com/rapor/odeme-detayi";
|
|
24
34
|
};
|
|
25
35
|
/** Varsayılan değerler */
|
|
26
36
|
export declare const DEFAULTS: {
|
|
@@ -1 +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;;
|
|
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;;IAItB,wBAAwB;;IAExB,kCAAkC;;IAElC,sBAAsB;;IAItB,mBAAmB;;IAEnB,mBAAmB;;CAEX,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"}
|
package/dist/esm/constants.js
CHANGED
|
@@ -21,6 +21,18 @@ export const ENDPOINTS = {
|
|
|
21
21
|
ORDER_STATUS: `${PAYTR_BASE_URL}/odeme/durum-sorgu`,
|
|
22
22
|
/** Taksit oranları */
|
|
23
23
|
INSTALLMENT_RATES: `${PAYTR_BASE_URL}/odeme/taksit-oranlari`,
|
|
24
|
+
// Platform Transfer (Marketplace)
|
|
25
|
+
/** Platform transfer */
|
|
26
|
+
PLATFORM_TRANSFER: `${PAYTR_BASE_URL}/odeme/platform/transfer`,
|
|
27
|
+
/** Geri dönen ödemeler listesi */
|
|
28
|
+
RETURNED_PAYMENTS: `${PAYTR_BASE_URL}/odeme/geri-donen-transfer`,
|
|
29
|
+
/** Hesaptan gönder */
|
|
30
|
+
SEND_FROM_ACCOUNT: `${PAYTR_BASE_URL}/odeme/hesaptan-gonder`,
|
|
31
|
+
// Payment Reports
|
|
32
|
+
/** Ödeme dökümü */
|
|
33
|
+
PAYMENT_SUMMARY: `${PAYTR_BASE_URL}/rapor/odeme-dokumu`,
|
|
34
|
+
/** Ödeme detayı */
|
|
35
|
+
PAYMENT_DETAIL: `${PAYTR_BASE_URL}/rapor/odeme-detayi`,
|
|
24
36
|
};
|
|
25
37
|
/** Varsayılan değerler */
|
|
26
38
|
export const DEFAULTS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yBAAyB;AACzB,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAEtD,0BAA0B;AAC1B,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iCAAiC;IACjC,YAAY,EAAE,GAAG,cAAc,QAAQ;IAEvC,oBAAoB;IACpB,SAAS,EAAE,GAAG,cAAc,uBAAuB;IAEnD,kBAAkB;IAClB,MAAM,EAAE,GAAG,cAAc,aAAa;IAEtC,mBAAmB;IACnB,eAAe,EAAE,GAAG,cAAc,qBAAqB;IAEvD,2BAA2B;IAC3B,SAAS,EAAE,GAAG,cAAc,kBAAkB;IAE9C,iBAAiB;IACjB,WAAW,EAAE,GAAG,cAAc,oBAAoB;IAElD,qBAAqB;IACrB,YAAY,EAAE,GAAG,cAAc,oBAAoB;IAEnD,sBAAsB;IACtB,iBAAiB,EAAE,GAAG,cAAc,wBAAwB;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yBAAyB;AACzB,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAEtD,0BAA0B;AAC1B,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iCAAiC;IACjC,YAAY,EAAE,GAAG,cAAc,QAAQ;IAEvC,oBAAoB;IACpB,SAAS,EAAE,GAAG,cAAc,uBAAuB;IAEnD,kBAAkB;IAClB,MAAM,EAAE,GAAG,cAAc,aAAa;IAEtC,mBAAmB;IACnB,eAAe,EAAE,GAAG,cAAc,qBAAqB;IAEvD,2BAA2B;IAC3B,SAAS,EAAE,GAAG,cAAc,kBAAkB;IAE9C,iBAAiB;IACjB,WAAW,EAAE,GAAG,cAAc,oBAAoB;IAElD,qBAAqB;IACrB,YAAY,EAAE,GAAG,cAAc,oBAAoB;IAEnD,sBAAsB;IACtB,iBAAiB,EAAE,GAAG,cAAc,wBAAwB;IAE5D,kCAAkC;IAClC,wBAAwB;IACxB,iBAAiB,EAAE,GAAG,cAAc,0BAA0B;IAC9D,kCAAkC;IAClC,iBAAiB,EAAE,GAAG,cAAc,4BAA4B;IAChE,sBAAsB;IACtB,iBAAiB,EAAE,GAAG,cAAc,wBAAwB;IAE5D,kBAAkB;IAClB,mBAAmB;IACnB,eAAe,EAAE,GAAG,cAAc,qBAAqB;IACvD,mBAAmB;IACnB,cAAc,EAAE,GAAG,cAAc,qBAAqB;CAC9C,CAAC;AAEX,0BAA0B;AAC1B,MAAM,CAAC,MAAM,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;AACnB,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,cAAc,EAAE,mCAAmC;CAC3C,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* });
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
import type { PayTRConfig, PaymentOptions, SaveCardPaymentOptions, StoredCardPaymentOptions, RecurringPaymentOptions, PreparedPayment, PaymentCallback, BINQueryResult, RefundResult, TransactionLogResult, CardListResult, DeleteCardResult, OrderStatusResult, InstallmentRatesResult } from './types';
|
|
30
|
+
import type { PayTRConfig, PaymentOptions, SaveCardPaymentOptions, StoredCardPaymentOptions, RecurringPaymentOptions, PreparedPayment, PaymentCallback, BINQueryResult, RefundResult, TransactionLogResult, CardListResult, DeleteCardResult, OrderStatusResult, InstallmentRatesResult, DirectPaymentResult, CardInfo, PlatformTransferParams, PlatformTransferResult, ReturnedPaymentsResult, ReturnedPaymentTransfer, PlatformTransferCallback, PaymentSummaryResult, PaymentDetailResult } from './types';
|
|
31
31
|
/**
|
|
32
32
|
* PayTR SDK ana sınıfı
|
|
33
33
|
*/
|
|
@@ -212,6 +212,150 @@ export declare class PayTR {
|
|
|
212
212
|
* ```
|
|
213
213
|
*/
|
|
214
214
|
getInstallmentRates(): Promise<InstallmentRatesResult>;
|
|
215
|
+
/**
|
|
216
|
+
* Direct API ile server-side ödeme işlemi yapar
|
|
217
|
+
*
|
|
218
|
+
* ⚠️ DİKKAT: Bu metod kart bilgilerini server üzerinden işler.
|
|
219
|
+
* PCI-DSS uyumluluğu gerektirir!
|
|
220
|
+
*
|
|
221
|
+
* @param options - Ödeme parametreleri (cardInfo zorunlu)
|
|
222
|
+
* @returns Ödeme sonucu veya 3D yönlendirme bilgisi
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```typescript
|
|
226
|
+
* const result = await paytr.processDirectPayment({
|
|
227
|
+
* merchantOid: 'ORDER-123',
|
|
228
|
+
* email: 'customer@example.com',
|
|
229
|
+
* paymentAmount: 100.99,
|
|
230
|
+
* currency: 'TL',
|
|
231
|
+
* basketItems: [{ name: 'Ürün', price: 100.99, quantity: 1 }],
|
|
232
|
+
* user: { name: 'Ad Soyad', address: 'Adres', phone: '05551234567' },
|
|
233
|
+
* merchantOkUrl: 'https://site.com/basarili',
|
|
234
|
+
* merchantFailUrl: 'https://site.com/hata',
|
|
235
|
+
* cardInfo: {
|
|
236
|
+
* ccOwner: 'KART SAHİBİ',
|
|
237
|
+
* cardNumber: '9792030394440796',
|
|
238
|
+
* expiryMonth: '12',
|
|
239
|
+
* expiryYear: '25',
|
|
240
|
+
* cvv: '000'
|
|
241
|
+
* }
|
|
242
|
+
* });
|
|
243
|
+
*
|
|
244
|
+
* if (result.status === 'redirect') {
|
|
245
|
+
* // 3D Secure yönlendirmesi gerekli
|
|
246
|
+
* // result.redirectHtml'i kullanıcıya göster
|
|
247
|
+
* } else if (result.status === 'success') {
|
|
248
|
+
* // Ödeme başarılı (non-3D)
|
|
249
|
+
* }
|
|
250
|
+
* ```
|
|
251
|
+
*/
|
|
252
|
+
processDirectPayment(options: PaymentOptions & {
|
|
253
|
+
cardInfo: CardInfo;
|
|
254
|
+
}): Promise<DirectPaymentResult>;
|
|
255
|
+
/**
|
|
256
|
+
* Platform transfer işlemi yapar (Marketplace)
|
|
257
|
+
*
|
|
258
|
+
* @param params - Transfer parametreleri
|
|
259
|
+
* @returns Transfer sonucu
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```typescript
|
|
263
|
+
* const result = await paytr.platformTransfer({
|
|
264
|
+
* merchantOid: 'ORDER-123',
|
|
265
|
+
* transId: 'TRANS-456',
|
|
266
|
+
* submerchantAmount: 8000, // 80.00 TL
|
|
267
|
+
* totalAmount: 10000, // 100.00 TL
|
|
268
|
+
* transferName: 'Alt Mağaza',
|
|
269
|
+
* transferIban: 'TR123456789012345678901234',
|
|
270
|
+
* });
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
platformTransfer(params: PlatformTransferParams): Promise<PlatformTransferResult>;
|
|
274
|
+
/**
|
|
275
|
+
* Geri dönen ödemeleri listeler
|
|
276
|
+
*
|
|
277
|
+
* @param startDate - Başlangıç tarihi
|
|
278
|
+
* @param endDate - Bitiş tarihi
|
|
279
|
+
* @returns Geri dönen ödemeler listesi
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```typescript
|
|
283
|
+
* const start = new Date('2024-01-01');
|
|
284
|
+
* const end = new Date('2024-01-31');
|
|
285
|
+
* const result = await paytr.getReturnedPayments(start, end);
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
getReturnedPayments(startDate: Date, endDate: Date): Promise<ReturnedPaymentsResult>;
|
|
289
|
+
/**
|
|
290
|
+
* Geri dönen ödemeyi transfer eder
|
|
291
|
+
*
|
|
292
|
+
* @param transId - Transfer ID
|
|
293
|
+
* @param transfers - Transfer bilgileri listesi
|
|
294
|
+
* @returns İşlem sonucu
|
|
295
|
+
*
|
|
296
|
+
* @example
|
|
297
|
+
* ```typescript
|
|
298
|
+
* const result = await paytr.sendReturnedPayment('TRANS-123', [
|
|
299
|
+
* {
|
|
300
|
+
* trans_id: 'SUB-1',
|
|
301
|
+
* submerchant_amount: 5000,
|
|
302
|
+
* transfer_name: 'Alt Mağaza',
|
|
303
|
+
* transfer_iban: 'TR123456789012345678901234',
|
|
304
|
+
* }
|
|
305
|
+
* ]);
|
|
306
|
+
* ```
|
|
307
|
+
*/
|
|
308
|
+
sendReturnedPayment(transId: string, transfers: ReturnedPaymentTransfer[]): Promise<PlatformTransferResult>;
|
|
309
|
+
/**
|
|
310
|
+
* Platform transfer callback'ini doğrular
|
|
311
|
+
*
|
|
312
|
+
* @param callback - PayTR'dan gelen callback verisi
|
|
313
|
+
* @returns Doğrulama başarılı mı?
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* ```typescript
|
|
317
|
+
* app.post('/api/platform-callback', (req, res) => {
|
|
318
|
+
* const isValid = paytr.verifyPlatformTransferCallback(req.body);
|
|
319
|
+
* if (!isValid) {
|
|
320
|
+
* return res.status(400).send('Invalid hash');
|
|
321
|
+
* }
|
|
322
|
+
* // İşlemi onayla
|
|
323
|
+
* res.send('OK');
|
|
324
|
+
* });
|
|
325
|
+
* ```
|
|
326
|
+
*/
|
|
327
|
+
verifyPlatformTransferCallback(callback: PlatformTransferCallback): boolean;
|
|
328
|
+
/**
|
|
329
|
+
* Ödeme özeti raporunu getirir
|
|
330
|
+
*
|
|
331
|
+
* @param startDate - Başlangıç tarihi
|
|
332
|
+
* @param endDate - Bitiş tarihi
|
|
333
|
+
* @returns Ödeme özeti
|
|
334
|
+
*
|
|
335
|
+
* @example
|
|
336
|
+
* ```typescript
|
|
337
|
+
* const start = new Date('2024-01-01');
|
|
338
|
+
* const end = new Date('2024-01-31');
|
|
339
|
+
* const result = await paytr.getPaymentSummary(start, end);
|
|
340
|
+
* console.log('Toplam:', result.total_amount);
|
|
341
|
+
* ```
|
|
342
|
+
*/
|
|
343
|
+
getPaymentSummary(startDate: Date, endDate: Date): Promise<PaymentSummaryResult>;
|
|
344
|
+
/**
|
|
345
|
+
* Belirli bir günün ödeme detaylarını getirir
|
|
346
|
+
*
|
|
347
|
+
* @param date - Tarih
|
|
348
|
+
* @returns Ödeme detayları
|
|
349
|
+
*
|
|
350
|
+
* @example
|
|
351
|
+
* ```typescript
|
|
352
|
+
* const result = await paytr.getPaymentDetail(new Date('2024-01-15'));
|
|
353
|
+
* result.data?.forEach(payment => {
|
|
354
|
+
* console.log(payment.merchant_oid, payment.payment_amount);
|
|
355
|
+
* });
|
|
356
|
+
* ```
|
|
357
|
+
*/
|
|
358
|
+
getPaymentDetail(date: Date): Promise<PaymentDetailResult>;
|
|
215
359
|
}
|
|
216
360
|
export * from './types';
|
|
217
361
|
export { ENDPOINTS, DEFAULTS } from './constants';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAaH,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,EACtB,mBAAmB,EACnB,QAAQ,EAER,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EAExB,oBAAoB,EACpB,mBAAmB,EACpB,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;IAsExD;;;;;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;IAiC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,oBAAoB,CACxB,OAAO,EAAE,cAAc,GAAG;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAC/C,OAAO,CAAC,mBAAmB,CAAC;IAwE/B;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAwCvF;;;;;;;;;;;;;OAaG;IACG,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8B1F;;;;;;;;;;;;;;;;;;OAkBG;IACG,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,uBAAuB,EAAE,GACnC,OAAO,CAAC,sBAAsB,CAAC;IA2BlC;;;;;;;;;;;;;;;;;OAiBG;IACH,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO;IAmB3E;;;;;;;;;;;;;;OAcG;IACG,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+BtF;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA4BjE;AAGD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|