better-payment
Version:
Unified payment gateway library for Turkish payment providers
239 lines (236 loc) • 6.18 kB
TypeScript
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 };