@voxepay/checkout 0.0.1-security → 0.5.19
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.
Potentially problematic release.
This version of @voxepay/checkout might be problematic. Click here for more details.
- package/README.md +140 -3
- package/dist/api/client.d.ts +146 -0
- package/dist/components/modal.d.ts +190 -0
- package/dist/index.cjs.js +2272 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.esm.js +2253 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/types.d.ts +170 -0
- package/dist/utils/card-validator.d.ts +47 -0
- package/dist/utils/encryption.d.ts +28 -0
- package/dist/utils/formatter.d.ts +31 -0
- package/dist/voxepay-checkout.min.js +2 -0
- package/dist/voxepay-checkout.min.js.map +1 -0
- package/dist/voxepay.d.ts +63 -0
- package/package.json +41 -3
- package/src/api/client.ts +301 -0
- package/src/components/modal.ts +1783 -0
- package/src/index.ts +76 -0
- package/src/types.ts +178 -0
- package/src/utils/card-validator.ts +198 -0
- package/src/utils/encryption.ts +182 -0
- package/src/utils/formatter.ts +91 -0
- package/src/voxepay.ts +200 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voxepay-checkout.min.js","sources":["../src/utils/card-validator.ts","../src/utils/formatter.ts","../src/utils/encryption.ts","../src/api/client.ts","../src/components/modal.ts","../src/voxepay.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["CARD_BRANDS","name","code","pattern","lengths","cvvLength","detectCardBrand","cardNumber","cleaned","replace","brand","test","luhnCheck","sum","isEven","i","length","digit","parseInt","validateCardNumber","valid","error","includes","validateExpiry","expiry","match","month","year","now","Date","currentYear","getFullYear","currentMonth","getMonth","validateCVV","cvv","expectedLength","formatCardNumber","value","join","slice","formatExpiry","formatCVV","formatAmount","amount","currency","Intl","NumberFormat","style","minimumFractionDigits","format","formatMainUnitAmount","RSA_CONFIG","modulus","publicExponent","generateAuthData","async","version","pan","pin","expiryDate","messageBytes","hex","bytes","push","substring","hexToBytes","str","charCodeAt","toString","toHex","BigInt","exponent","modHex","keyByteLen","Math","ceil","padded","data","Error","padLen","Array","r","crypto","getRandomValues","arr","Uint8Array","floor","random","pkcs1Pad","m","result","b","_bigIntFromBytes","c","base","exp","mod","_bigIntModPow","n","rem","unshift","Number","_bigIntToBytes","btoa","String","fromCharCode","Buffer","from","console","formatExpiryForApi","cleanPan","VoxePayApiClient","constructor","apiKey","baseUrl","bearerToken","this","setBearerToken","token","request","endpoint","body","includeApiKey","url","headers","Accept","response","fetch","method","JSON","stringify","json","ok","errorMessage","message","status","errorCode","get","authType","success","initiatePayment","paymentLinkSlug","encodeURIComponent","initiateTransferPayment","validateOTP","slug","resendOTP","getPaymentStatus","transactionRef","options","queryParams","undefined","simulateWebhook","bypassKey","ICONS","CARD_BRAND_DISPLAY","visa","mastercard","amex","verve","discover","VoxePayModal","container","overlay","apiClient","statusPollingInterval","statusPollingTimeout","handleEscape","e","key","close","document","removeEventListener","methods","paymentMethods","_sdkConfig","state","otp","errors","isProcessing","isSuccess","isOtpStep","otpTimer","canResendOtp","otpTimerInterval","paymentMethod","transferTimer","transferTimerInterval","bankTransferDetails","paymentId","transactionId","eciFlag","otpDeliveryMessage","open","injectStyles","render","attachEventListeners","requestAnimationFrame","classList","add","stopTransferTimer","stopStatusPolling","remove","setTimeout","onClose","getElementById","createElement","id","textContent","getStyles","head","appendChild","className","innerHTML","getModalHTML","querySelector","getPaymentMethods","formattedAmount","feeDetails","round","grossAmount","totalFees","showTabs","isCard","description","getCardFormHTML","getBankTransferHTML","details","displayAmount","feeBreakdown","totalPayableAmount","accountNumber","bankName","accountName","reference","formatCountdown","expiresIn","seconds","s","padStart","renderSuccessView","formContainer","closeBtn","addEventListener","renderErrorModal","recoverable","isRetryable","retryBtn","handleBackToCard","showErrorModal","onError","renderOTPView","subtitle","sentToPhone","customerPhone","toLowerCase","customerEmail","feeBreakdownHTML","totalAmount","titleEl","attachOTPEventListeners","startOTPTimer","otpInputs","querySelectorAll","forEach","input","index","handleOTPInput","handleOTPKeydown","handleOTPPaste","verifyBtn","handleOTPSubmit","resendBtn","handleResendOTP","backBtn","focus","target","nextInput","updateOTPState","clearError","prevInput","preventDefault","pastedData","clipboardData","getData","inputs","split","timerEl","timerContainer","window","setInterval","clearInterval","display","disabled","setOTPProcessing","verifyOTP","processPayment","onSuccess","paymentError","showError","organizationId","cardInput","expiryInput","cvvInput","pinInput","tabs","tab","dataset","switchPaymentMethod","handleCardInput","validateField","handleExpiryInput","handleCVVInput","handlePinInput","form","handleSubmit","attachBankTransferListeners","startTransferTimer","loadBankTransferDetails","copyBtn","accountNum","copy","copyToClipboard","confirmBtn","handleTransferConfirm","onBankTransferRequested","toUpperCase","customerId","customerName","authData","source","narration","durationMinutes","va","virtualAccount","expiresAtDate","expires_at","nowMs","expiresInSeconds","max","getTime","account_number","bank_name","account_name","expiresAt","getDVAErrorTitle","ACCOUNT_CREATION_FAILED","ACCOUNT_EXPIRED","INVALID_AMOUNT","UNAUTHORIZED","ORGANIZATION_NOT_FOUND","MISSING_VIRTUAL_ACCOUNT","SDK_ERROR","text","navigator","clipboard","writeText","textarea","position","opacity","select","execCommand","removeChild","timestamp","toISOString","renderPollingView","startStatusPolling","cancelBtn","amt","poll","statusData","handlePollingStatusUpdate","statusEl","clearTimeout","completedAt","renderTransferErrorView","overpaid","title","countdownEl","formatted","brandEl","field","validatePIN","errorEl","inputEl","isCardValid","isExpiryValid","isCVVValid","isPinValid","setProcessing","payload","log","submitBtn","VoxePaySDK","config","currentModal","initialized","init","theme","locale","applyAutoTheme","documentElement","customStyles","applyCustomStyles","checkout","closeModal","setTheme","matchMedia","matches","toggle","styles","root","Object","entries","setProperty","isInitialized","VoxePay","NGN","USD","EUR","GBP","GHS","KES","ZAR"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VoxePay - Modern Payment Checkout SDK
|
|
3
|
+
*
|
|
4
|
+
* A beautiful, modern payment modal for the web.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```javascript
|
|
8
|
+
* // Initialize VoxePay
|
|
9
|
+
* VoxePay.init({ apiKey: 'pk_live_xxxxx' });
|
|
10
|
+
*
|
|
11
|
+
* // Open checkout
|
|
12
|
+
* VoxePay.checkout({
|
|
13
|
+
* amount: 4999,
|
|
14
|
+
* currency: 'NGN',
|
|
15
|
+
* description: 'Premium Plan',
|
|
16
|
+
* onSuccess: (result) => console.log('Paid!', result),
|
|
17
|
+
* onError: (error) => console.error('Failed', error),
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { VoxePayConfig, CheckoutOptions } from './types';
|
|
22
|
+
declare class VoxePaySDK {
|
|
23
|
+
private config;
|
|
24
|
+
private currentModal;
|
|
25
|
+
private initialized;
|
|
26
|
+
/**
|
|
27
|
+
* Initialize VoxePay with your configuration
|
|
28
|
+
* @param config - Configuration object with required organizationId and optional settings
|
|
29
|
+
*/
|
|
30
|
+
init(config: VoxePayConfig): void;
|
|
31
|
+
/**
|
|
32
|
+
* Open the checkout modal
|
|
33
|
+
* @param options - Checkout options including amount, currency, and callbacks
|
|
34
|
+
*/
|
|
35
|
+
checkout(options: CheckoutOptions): void;
|
|
36
|
+
/**
|
|
37
|
+
* Close the current checkout modal
|
|
38
|
+
*/
|
|
39
|
+
closeModal(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Set the theme
|
|
42
|
+
* @param theme - 'dark', 'light', or 'auto'
|
|
43
|
+
*/
|
|
44
|
+
setTheme(theme: 'dark' | 'light' | 'auto'): void;
|
|
45
|
+
/**
|
|
46
|
+
* Apply system theme preference
|
|
47
|
+
*/
|
|
48
|
+
private applyAutoTheme;
|
|
49
|
+
/**
|
|
50
|
+
* Apply custom CSS variables
|
|
51
|
+
*/
|
|
52
|
+
private applyCustomStyles;
|
|
53
|
+
/**
|
|
54
|
+
* Get the SDK version
|
|
55
|
+
*/
|
|
56
|
+
get version(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Check if SDK is initialized
|
|
59
|
+
*/
|
|
60
|
+
get isInitialized(): boolean;
|
|
61
|
+
}
|
|
62
|
+
declare const VoxePay: VoxePaySDK;
|
|
63
|
+
export { VoxePay, VoxePaySDK };
|
package/package.json
CHANGED
|
@@ -1,6 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxepay/checkout",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
3
|
+
"version": "0.5.19",
|
|
4
|
+
"description": "Modern payment checkout modal for VoxePay - beautiful, fast, and secure",
|
|
5
|
+
"author": "VoxePay",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "./dist/index.cjs.js",
|
|
8
|
+
"module": "./dist/index.esm.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"sideEffects": false,
|
|
11
|
+
"keywords": [
|
|
12
|
+
"voxepay",
|
|
13
|
+
"checkout",
|
|
14
|
+
"payment",
|
|
15
|
+
"modal",
|
|
16
|
+
"fintech",
|
|
17
|
+
"nigeria",
|
|
18
|
+
"payment-gateway"
|
|
19
|
+
],
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://github.com/voxepay/voxepay-checkout.git"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist",
|
|
26
|
+
"src",
|
|
27
|
+
"README.md"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "rollup -c rollup.config.mjs",
|
|
31
|
+
"dev": "rollup -c rollup.config.mjs --watch",
|
|
32
|
+
"prepublishOnly": "npm run build"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@rollup/plugin-commonjs": "^25.0.0",
|
|
36
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
37
|
+
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
38
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
39
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
40
|
+
"rollup": "^4.62.4",
|
|
41
|
+
"tslib": "^2.6.0",
|
|
42
|
+
"typescript": "^5.0.0"
|
|
43
|
+
}
|
|
6
44
|
}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VoxePay Payment API Client
|
|
3
|
+
* Handles communication with the VoxePay payment gateway
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const DEFAULT_BASE_URL = 'https://devpay.voxepay.app';
|
|
7
|
+
|
|
8
|
+
export interface InitiatePaymentRequest {
|
|
9
|
+
organizationId: string;
|
|
10
|
+
transactionRef: string;
|
|
11
|
+
customerId?: string;
|
|
12
|
+
customerEmail?: string;
|
|
13
|
+
customerPhone?: string;
|
|
14
|
+
customerName?: string;
|
|
15
|
+
amount: number;
|
|
16
|
+
currency: string;
|
|
17
|
+
paymentMethod: 'CARD' | 'BANK_TRANSFER';
|
|
18
|
+
authData: string;
|
|
19
|
+
narration?: string;
|
|
20
|
+
/** Virtual account validity in minutes (5-1440). Only for BANK_TRANSFER. Default: 30 */
|
|
21
|
+
durationMinutes?: number;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface VirtualAccountResponse {
|
|
25
|
+
account_number: string;
|
|
26
|
+
account_name: string;
|
|
27
|
+
bank_name: string;
|
|
28
|
+
bank_code: string;
|
|
29
|
+
expires_at: string;
|
|
30
|
+
status: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface InitiatePaymentResponse {
|
|
34
|
+
/** Backend sends `id` (not `paymentId`) for payment-links/public/.../pay */
|
|
35
|
+
id: string;
|
|
36
|
+
transactionRef: string;
|
|
37
|
+
status: string;
|
|
38
|
+
message: string;
|
|
39
|
+
/** Legacy field — some endpoints may still return this */
|
|
40
|
+
paymentId?: string;
|
|
41
|
+
transactionId?: string;
|
|
42
|
+
eciFlag?: string;
|
|
43
|
+
otpRequired?: boolean;
|
|
44
|
+
virtualAccount?: VirtualAccountResponse;
|
|
45
|
+
feeDetails?: {
|
|
46
|
+
transactionFee: number;
|
|
47
|
+
transactionFeeVat: number;
|
|
48
|
+
totalFees: number;
|
|
49
|
+
grossAmount: number;
|
|
50
|
+
currency: string;
|
|
51
|
+
};
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export type DVAPaymentStatus =
|
|
56
|
+
| 'INITIATED'
|
|
57
|
+
| 'PENDING_PAYMENT'
|
|
58
|
+
| 'PAYMENT_RECEIVED'
|
|
59
|
+
| 'COMPLETED'
|
|
60
|
+
| 'PARTIAL_PAYMENT'
|
|
61
|
+
| 'OVERPAID'
|
|
62
|
+
| 'EXPIRED'
|
|
63
|
+
| 'FAILED'
|
|
64
|
+
| 'CANCELLED';
|
|
65
|
+
|
|
66
|
+
export interface PaymentStatusResponse {
|
|
67
|
+
id: string;
|
|
68
|
+
transactionRef: string;
|
|
69
|
+
customerId?: string;
|
|
70
|
+
amount: number;
|
|
71
|
+
currency: string;
|
|
72
|
+
paymentMethod: 'CARD' | 'BANK_TRANSFER';
|
|
73
|
+
status: DVAPaymentStatus;
|
|
74
|
+
paymentId?: string;
|
|
75
|
+
otpRequired?: boolean;
|
|
76
|
+
authorizationUrl?: string;
|
|
77
|
+
message?: string;
|
|
78
|
+
otpAttempts?: number;
|
|
79
|
+
maxOtpAttempts?: number;
|
|
80
|
+
createdAt: string;
|
|
81
|
+
completedAt?: string;
|
|
82
|
+
virtualAccount?: {
|
|
83
|
+
account_number: string;
|
|
84
|
+
account_name: string;
|
|
85
|
+
bank_name: string;
|
|
86
|
+
bank_code: string;
|
|
87
|
+
expires_at: string;
|
|
88
|
+
status: string;
|
|
89
|
+
};
|
|
90
|
+
feeDetails?: {
|
|
91
|
+
transactionFee: number;
|
|
92
|
+
transactionFeeVat: number;
|
|
93
|
+
totalFees: number;
|
|
94
|
+
grossAmount: number;
|
|
95
|
+
currency: string;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface ValidateOTPRequest {
|
|
100
|
+
paymentId: string;
|
|
101
|
+
otp: string;
|
|
102
|
+
/** Legacy field — some backends expect `transactionId` */
|
|
103
|
+
transactionId?: string;
|
|
104
|
+
/** Backend payment-links uses `transactionRef` as the identifier */
|
|
105
|
+
transactionRef?: string;
|
|
106
|
+
eciFlag?: string;
|
|
107
|
+
organizationId: string;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export interface ValidateOTPResponse {
|
|
111
|
+
status: string;
|
|
112
|
+
message: string;
|
|
113
|
+
paymentId: string;
|
|
114
|
+
transactionRef?: string;
|
|
115
|
+
amount?: number;
|
|
116
|
+
currency?: string;
|
|
117
|
+
[key: string]: unknown;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export interface ResendOTPRequest {
|
|
121
|
+
transactionRef: string;
|
|
122
|
+
organizationId: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export class VoxePayApiClient {
|
|
126
|
+
private apiKey?: string;
|
|
127
|
+
private bearerToken?: string;
|
|
128
|
+
private baseUrl: string;
|
|
129
|
+
|
|
130
|
+
constructor(apiKey?: string, baseUrl?: string, bearerToken?: string) {
|
|
131
|
+
this.apiKey = apiKey;
|
|
132
|
+
this.bearerToken = bearerToken;
|
|
133
|
+
this.baseUrl = baseUrl || DEFAULT_BASE_URL;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Set Bearer token for authenticated endpoints (like getPaymentStatus)
|
|
138
|
+
*/
|
|
139
|
+
setBearerToken(token: string): void {
|
|
140
|
+
this.bearerToken = token;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
private async request<T>(endpoint: string, body: unknown, includeApiKey = true): Promise<T> {
|
|
144
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
145
|
+
|
|
146
|
+
const headers: Record<string, string> = {
|
|
147
|
+
'Content-Type': 'application/json',
|
|
148
|
+
'Accept': 'application/json',
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
if (includeApiKey && this.apiKey) {
|
|
152
|
+
headers['X-API-Key'] = this.apiKey;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
const response = await fetch(url, {
|
|
156
|
+
method: 'POST',
|
|
157
|
+
headers,
|
|
158
|
+
body: JSON.stringify(body),
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
const data = await response.json();
|
|
162
|
+
|
|
163
|
+
if (!response.ok) {
|
|
164
|
+
const errorMessage = data?.message || data?.error || `Request failed with status ${response.status}`;
|
|
165
|
+
const error: any = new Error(errorMessage);
|
|
166
|
+
error.code = data?.errorCode || data?.code || `HTTP_${response.status}`;
|
|
167
|
+
error.status = response.status;
|
|
168
|
+
error.data = data;
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return data as T;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
private async get<T>(endpoint: string, authType: 'api-key' | 'bearer' | 'none' = 'api-key'): Promise<T> {
|
|
176
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
177
|
+
|
|
178
|
+
const headers: Record<string, string> = {
|
|
179
|
+
'Accept': 'application/json',
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
if (authType === 'bearer' && this.bearerToken) {
|
|
183
|
+
headers['Authorization'] = `Bearer ${this.bearerToken}`;
|
|
184
|
+
} else if (authType === 'api-key' && this.apiKey) {
|
|
185
|
+
headers['X-API-Key'] = this.apiKey;
|
|
186
|
+
}
|
|
187
|
+
// authType === 'none' → no auth header added
|
|
188
|
+
|
|
189
|
+
const response = await fetch(url, {
|
|
190
|
+
method: 'GET',
|
|
191
|
+
headers,
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
const data = await response.json();
|
|
195
|
+
|
|
196
|
+
if (!response.ok) {
|
|
197
|
+
const errorMessage = data?.message || data?.error || `Request failed with status ${response.status}`;
|
|
198
|
+
const error: any = new Error(errorMessage);
|
|
199
|
+
error.code = data?.errorCode || data?.code || `HTTP_${response.status}`;
|
|
200
|
+
error.status = response.status;
|
|
201
|
+
error.data = data;
|
|
202
|
+
error.success = data?.success;
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return data as T;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Initiate payment (card or bank transfer) via public payment-link endpoint.
|
|
211
|
+
*/
|
|
212
|
+
async initiatePayment(
|
|
213
|
+
paymentLinkSlug: string,
|
|
214
|
+
data: InitiatePaymentRequest
|
|
215
|
+
): Promise<InitiatePaymentResponse> {
|
|
216
|
+
const response = await this.request<{ success?: boolean; data?: InitiatePaymentResponse } & InitiatePaymentResponse>(
|
|
217
|
+
`/api/v1/payment-links/public/${encodeURIComponent(paymentLinkSlug)}/pay`,
|
|
218
|
+
data,
|
|
219
|
+
false
|
|
220
|
+
);
|
|
221
|
+
if (response.data && typeof response.data === 'object' && 'transactionRef' in response.data) {
|
|
222
|
+
return response.data;
|
|
223
|
+
}
|
|
224
|
+
return response;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* @deprecated Use initiatePayment with a paymentLinkSlug instead.
|
|
229
|
+
*/
|
|
230
|
+
async initiateTransferPayment(
|
|
231
|
+
paymentLinkSlug: string,
|
|
232
|
+
data: InitiatePaymentRequest
|
|
233
|
+
): Promise<InitiatePaymentResponse> {
|
|
234
|
+
return this.initiatePayment(paymentLinkSlug, data);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Validate OTP for a payment
|
|
239
|
+
* @param slug - The payment link slug
|
|
240
|
+
* @param data - OTP validation payload
|
|
241
|
+
*/
|
|
242
|
+
async validateOTP(slug: string, data: ValidateOTPRequest): Promise<ValidateOTPResponse> {
|
|
243
|
+
return this.request<ValidateOTPResponse>(
|
|
244
|
+
`/api/v1/payment-links/public/${encodeURIComponent(slug)}/validate-otp`,
|
|
245
|
+
data,
|
|
246
|
+
false
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Resend OTP for a payment
|
|
252
|
+
* @param slug - The payment link slug
|
|
253
|
+
* @param data - Resend OTP payload
|
|
254
|
+
*/
|
|
255
|
+
async resendOTP(slug: string, data: ResendOTPRequest): Promise<void> {
|
|
256
|
+
await this.request<unknown>(
|
|
257
|
+
`/api/v1/payment-links/public/${encodeURIComponent(slug)}/resend-otp`,
|
|
258
|
+
data,
|
|
259
|
+
false
|
|
260
|
+
);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Get payment status by transaction reference (used for polling DVA payments)
|
|
265
|
+
* Uses public endpoint - no authentication required
|
|
266
|
+
* @param transactionRef - The transaction reference to check
|
|
267
|
+
* @param options - Optional query parameters (simulateWebhook, bypassKey)
|
|
268
|
+
*/
|
|
269
|
+
async getPaymentStatus(
|
|
270
|
+
transactionRef: string,
|
|
271
|
+
options?: { simulateWebhook?: boolean; bypassKey?: string }
|
|
272
|
+
): Promise<PaymentStatusResponse> {
|
|
273
|
+
let endpoint = `/api/v1/payments/public/${encodeURIComponent(transactionRef)}`;
|
|
274
|
+
|
|
275
|
+
// Add query parameters if provided
|
|
276
|
+
const queryParams: string[] = [];
|
|
277
|
+
if (options?.simulateWebhook !== undefined) {
|
|
278
|
+
queryParams.push(`simulateWebhook=${options.simulateWebhook}`);
|
|
279
|
+
}
|
|
280
|
+
if (options?.bypassKey) {
|
|
281
|
+
queryParams.push(`bypassKey=${encodeURIComponent(options.bypassKey)}`);
|
|
282
|
+
}
|
|
283
|
+
if (queryParams.length > 0) {
|
|
284
|
+
endpoint += `?${queryParams.join('&')}`;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
const response = await this.get<{ success: boolean; message: string; data: PaymentStatusResponse; errorCode?: string }>(
|
|
288
|
+
endpoint,
|
|
289
|
+
'none' // Public endpoint — no auth required
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
if (!response.success) {
|
|
293
|
+
const error: any = new Error(response.message || 'Payment not found');
|
|
294
|
+
error.code = response.errorCode || 'PAYMENT_NOT_FOUND';
|
|
295
|
+
error.success = false;
|
|
296
|
+
throw error;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
return response.data;
|
|
300
|
+
}
|
|
301
|
+
}
|