UNPKG

better-payment

Version:

Unified payment gateway library for Turkish payment providers

239 lines (236 loc) 6.18 kB
import { P as ProviderType, a as PaymentRequest, b as PaymentResponse, T as ThreeDSPaymentRequest, c as ThreeDSInitResponse, R as RefundRequest, d as RefundResponse, C as CancelRequest, e as CancelResponse } from '../BetterPayConfig-Dwl6JEAi.js'; /** * Client configuration */ interface BetterPayClientConfig { /** * Base URL for API endpoints * @example '/api/pay' * @example 'https://api.example.com/pay' */ baseUrl: string; /** * Custom fetch implementation (opsiyonel) * @default globalThis.fetch */ fetch?: typeof fetch; /** * Default headers for all requests */ headers?: Record<string, string>; } /** * Provider client for making payment requests */ declare class ProviderClient { private provider; private config; constructor(provider: ProviderType, config: BetterPayClientConfig); /** * Get fetch implementation */ private get fetch(); /** * Build full URL for endpoint */ private buildUrl; /** * Make HTTP request */ private request; /** * Create payment * * @example * ```typescript * const result = await client.iyzico.createPayment({ * price: '1.00', * paidPrice: '1.00', * currency: 'TRY', * // ... other fields * }); * ``` */ createPayment(request: PaymentRequest): Promise<PaymentResponse>; /** * Initialize 3D Secure payment * * @example * ```typescript * const result = await client.iyzico.initThreeDSPayment({ * price: '1.00', * paidPrice: '1.00', * currency: 'TRY', * callbackUrl: 'https://example.com/callback', * // ... other fields * }); * * // Render 3DS HTML content * document.getElementById('threeds-container').innerHTML = result.threeDSHtmlContent; * ``` */ initThreeDSPayment(request: ThreeDSPaymentRequest): Promise<ThreeDSInitResponse>; /** * Complete 3D Secure payment (callback handler) * * @example * ```typescript * // In your callback page: * const callbackData = { ... }; // Data from provider * const result = await client.iyzico.completeThreeDSPayment(callbackData); * ``` */ completeThreeDSPayment(callbackData: any): Promise<PaymentResponse>; /** * Refund payment * * @example * ```typescript * const result = await client.iyzico.refund({ * paymentTransactionId: '123456', * price: '0.50', * currency: 'TRY', * }); * ``` */ refund(request: RefundRequest): Promise<RefundResponse>; /** * Cancel payment * * @example * ```typescript * const result = await client.iyzico.cancel({ * paymentId: '123456', * }); * ``` */ cancel(request: CancelRequest): Promise<CancelResponse>; /** * Get payment details * * @example * ```typescript * const payment = await client.iyzico.getPayment('payment-id-123'); * ``` */ getPayment(paymentId: string): Promise<PaymentResponse>; } /** * BetterPay client for frontend applications * * Better-auth tarzı client library. Frontend'den otomatik olarak API endpoint'lerini * çağırmak için kullanılır. * * @example * ```typescript * import { createBetterPayClient } from 'better-pay/client'; * * const client = createBetterPayClient({ * baseUrl: '/api/pay', * }); * * // İyzico ile ödeme oluştur * const result = await client.iyzico.createPayment({ * price: '100.00', * paidPrice: '100.00', * currency: 'TRY', * basketId: 'B67832', * paymentCard: { * cardHolderName: 'John Doe', * cardNumber: '5528790000000008', * expireMonth: '12', * expireYear: '2030', * cvc: '123', * }, * buyer: { * id: 'BY789', * name: 'John', * surname: 'Doe', * gsmNumber: '+905350000000', * email: 'email@email.com', * identityNumber: '74300864791', * registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah.', * ip: '85.34.78.112', * city: 'Istanbul', * country: 'Turkey', * }, * shippingAddress: { * contactName: 'Jane Doe', * city: 'Istanbul', * country: 'Turkey', * address: 'Nidakule Göztepe, Merdivenköy Mah.', * }, * billingAddress: { * contactName: 'Jane Doe', * city: 'Istanbul', * country: 'Turkey', * address: 'Nidakule Göztepe, Merdivenköy Mah.', * }, * basketItems: [ * { * id: 'BI101', * name: 'Product 1', * category1: 'Electronics', * itemType: 'PHYSICAL', * price: '100.00', * }, * ], * }); * * // PayTR ile 3DS ödeme başlat * const threeds = await client.paytr.initThreeDSPayment({ * price: '100.00', * paidPrice: '100.00', * currency: 'TRY', * callbackUrl: 'https://example.com/callback', * // ... other fields * }); * * // 3DS HTML'i render et * document.getElementById('payment-iframe').innerHTML = threeds.threeDSHtmlContent; * ``` */ declare class BetterPayClient { private config; /** * İyzico provider client */ readonly iyzico: ProviderClient; /** * PayTR provider client */ readonly paytr: ProviderClient; constructor(config: BetterPayClientConfig); /** * Health check endpoint * * @example * ```typescript * const health = await client.health(); * console.log(health.status); // 'ok' * console.log(health.providers); // ['iyzico', 'paytr'] * ``` */ health(): Promise<{ status: string; service: string; version: string; providers: string[]; timestamp: string; }>; } /** * Create a BetterPay client instance * * @param config - Client configuration * @returns BetterPayClient instance * * @example * ```typescript * const client = createBetterPayClient({ * baseUrl: '/api/pay', * }); * ``` */ declare function createBetterPayClient(config: BetterPayClientConfig): BetterPayClient; export { BetterPayClient, type BetterPayClientConfig, createBetterPayClient };