@muhammedaksam/sipay-node
Version:
Node.js TypeScript SDK for Sipay payment gateway
42 lines • 3 kB
TypeScript
/**
* Sipay Status Code Utilities
* Helper functions for working with Sipay API status codes
*/
import { SipayStatusCode, SipayStatusCategory } from '../types/status-codes';
/**
* Enhanced error information for status codes
*/
export interface StatusCodeInfo {
code: number;
description: string;
category: SipayStatusCategory;
isSuccess: boolean;
isError: boolean;
isRetryable: boolean;
httpEquivalent?: number;
}
/**
* Get comprehensive information about a status code
*/
export declare function getStatusCodeInfo(statusCode: number): StatusCodeInfo;
/**
* Common status code groups for easy checking
*/
export declare const StatusCodeGroups: {
readonly SUCCESS: readonly [SipayStatusCode.SUCCESSFUL, SipayStatusCode.REFUND_REQUEST_CREATED, SipayStatusCode.PARTIALLY_SUCCESSFUL];
readonly VALIDATION_ERRORS: readonly [SipayStatusCode.BASIC_VALIDATION, SipayStatusCode.ITEMS_VALIDATION_ERROR, SipayStatusCode.PRICE_TOTAL_MISMATCH, SipayStatusCode.QUANTITY_MUST_BE_INTEGER, SipayStatusCode.INVALID_INVOICE_ID, SipayStatusCode.INVALID_CHARACTER, SipayStatusCode.INVALID_CARD_NUMBER, SipayStatusCode.CANCELLATION_URL_SHOULD_NOT_BE_BLANK];
readonly PAYMENT_ERRORS: readonly [SipayStatusCode.ORDER_FAILED, SipayStatusCode.PAYMENT_TERM_NOT_SET, SipayStatusCode.REFUND_FAILED, SipayStatusCode.TRANSACTION_NOT_FOUND, SipayStatusCode.ORDER_NOT_YET_PROCESSED, SipayStatusCode.TRANSACTION_NOT_APPROVED];
readonly MERCHANT_LIMIT_ERRORS: readonly [SipayStatusCode.CREDIT_CARD_BLOCKED, SipayStatusCode.MERCHANT_DAILY_AMOUNT_LIMIT_EXCEEDED, SipayStatusCode.MERCHANT_MONTHLY_TRANSACTION_LIMIT_EXCEEDED, SipayStatusCode.MERCHANT_MONTHLY_AMOUNT_LIMIT_EXCEEDED, SipayStatusCode.MINIMUM_TRANSACTION_LIMIT_VIOLATED];
readonly CARD_ERRORS: readonly [SipayStatusCode.CREDIT_CARD_BLOCKED, SipayStatusCode.MERCHANT_CARD_TRANSACTION_NOT_ALLOWED, SipayStatusCode.CARD_PROGRAM_MISMATCH, SipayStatusCode.FOREIGN_CARDS_NOT_ALLOWED, SipayStatusCode.NO_FOREIGN_CARD_COMMISSION];
readonly HASH_KEY_ERRORS: readonly [SipayStatusCode.HASH_KEY_VALIDATION_ERROR, SipayStatusCode.INVALID_HASH_KEY, SipayStatusCode.HASH_KEY_MERCHANT_KEY_MISMATCH, SipayStatusCode.HASH_KEY_CUSTOMER_NUMBER_MISMATCH, SipayStatusCode.HASH_KEY_CARD_HOLDER_NAME_MISMATCH, SipayStatusCode.HASH_KEY_CARD_NUMBER_MISMATCH, SipayStatusCode.HASH_KEY_EXPIRY_MONTH_MISMATCH, SipayStatusCode.HASH_KEY_EXPIRY_YEAR_MISMATCH, SipayStatusCode.HASH_KEY_CARD_TOKEN_MISMATCH];
readonly RETRYABLE_ERRORS: readonly [SipayStatusCode.ORDER_NOT_YET_PROCESSED, SipayStatusCode.INVOICE_ID_ALREADY_PROCESSED, SipayStatusCode.INVOICE_ID_ALREADY_PROCESSED_ALT, SipayStatusCode.REFUND_FAILED];
};
/**
* Check if status code is in a specific group
*/
export declare function isStatusInGroup(statusCode: number, group: readonly number[]): boolean;
/**
* Get suggested actions based on status code
*/
export declare function getSuggestedAction(statusCode: number): string;
//# sourceMappingURL=status-code-helpers.d.ts.map