UNPKG

@zed-io/wam-payment-sdk

Version:

Official WAM Payment SDK for creating and signing payment links

94 lines (91 loc) 2.95 kB
interface PaymentLinkParams { amount: number; currency: 'TTD' | 'USD'; reference: string; returnUrl?: string; } interface WamPaymentConfig { businessId: string; privateKey: string; } interface PaymentLinkResponse { url: string; signature: string; timestamp: number; payload: string; } interface ValidationError { field: string; message: string; } declare class WamPaymentError extends Error { code: string; validationErrors?: ValidationError[] | undefined; constructor(message: string, code: string, validationErrors?: ValidationError[] | undefined); } declare enum WamPaymentErrorCode { INVALID_CONFIG = "INVALID_CONFIG", INVALID_AMOUNT = "INVALID_AMOUNT", INVALID_CURRENCY = "INVALID_CURRENCY", INVALID_REFERENCE = "INVALID_REFERENCE", INVALID_RETURN_URL = "INVALID_RETURN_URL", SIGNING_ERROR = "SIGNING_ERROR", VALIDATION_ERROR = "VALIDATION_ERROR" } declare class WamPaymentSDK { private config; private baseUrl; constructor(config: WamPaymentConfig); /** * Generates a signed payment link for WAM payment processing * @param params Payment parameters including amount, currency, reference, and optional return URL * @returns Payment link response with URL, signature, and metadata */ generatePaymentLink(params: PaymentLinkParams): PaymentLinkResponse; /** * Validates payment parameters * @param params Payment parameters to validate * @throws WamPaymentError if validation fails */ private validatePaymentParams; /** * Validates the SDK configuration * @param config Configuration to validate * @throws WamPaymentError if configuration is invalid */ private validateConfig; /** * Generates HMAC-SHA256 signature * @param payload The payload to sign * @returns Hex-encoded signature */ private generateSignature; /** * Gets the base URL from environment variables or defaults to production * @returns Base URL for WAM payment gateway */ private getBaseUrl; /** * Builds the complete payment URL with all parameters * @param params Payment parameters * @param timestamp Generated timestamp * @param signature Generated signature * @returns Complete payment URL */ private buildPaymentUrl; /** * Validates if a string is a valid URL * @param url String to validate * @returns true if valid URL, false otherwise */ private isValidUrl; /** * Gets the current configuration (without sensitive data) * @returns Configuration object without private key */ getConfig(): Omit<WamPaymentConfig, 'privateKey'> & { baseUrl: string; }; } export { WamPaymentError, WamPaymentErrorCode, WamPaymentSDK, WamPaymentSDK as default }; export type { PaymentLinkParams, PaymentLinkResponse, ValidationError, WamPaymentConfig };