@zendfi/sdk 0.7.2 → 0.7.3
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.
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6 -2
- package/dist/index.mjs +6 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -3498,6 +3498,8 @@ var ZendFiEmbeddedCheckout = class {
|
|
|
3498
3498
|
checkoutData = null;
|
|
3499
3499
|
pollInterval = null;
|
|
3500
3500
|
mounted = false;
|
|
3501
|
+
paymentProcessed = false;
|
|
3502
|
+
// Prevent duplicate success callbacks
|
|
3501
3503
|
constructor(config) {
|
|
3502
3504
|
this.config = {
|
|
3503
3505
|
linkCode: config.linkCode || "",
|
|
@@ -3601,7 +3603,7 @@ var ZendFiEmbeddedCheckout = class {
|
|
|
3601
3603
|
*/
|
|
3602
3604
|
startPaymentPolling() {
|
|
3603
3605
|
this.pollInterval = setInterval(async () => {
|
|
3604
|
-
if (!this.checkoutData) return;
|
|
3606
|
+
if (!this.checkoutData || this.paymentProcessed) return;
|
|
3605
3607
|
try {
|
|
3606
3608
|
const response = await fetch(
|
|
3607
3609
|
`${this.config.apiUrl}/api/v1/payments/${this.checkoutData.payment_id}/status`,
|
|
@@ -3614,7 +3616,7 @@ var ZendFiEmbeddedCheckout = class {
|
|
|
3614
3616
|
);
|
|
3615
3617
|
if (response.ok) {
|
|
3616
3618
|
const data = await response.json();
|
|
3617
|
-
if (data.status === "confirmed") {
|
|
3619
|
+
if (data.status === "confirmed" && !this.paymentProcessed) {
|
|
3618
3620
|
this.handlePaymentSuccess(data);
|
|
3619
3621
|
} else if (data.status === "failed") {
|
|
3620
3622
|
this.handlePaymentFailure(data);
|
|
@@ -3631,6 +3633,8 @@ var ZendFiEmbeddedCheckout = class {
|
|
|
3631
3633
|
* Handle successful payment
|
|
3632
3634
|
*/
|
|
3633
3635
|
handlePaymentSuccess(statusData) {
|
|
3636
|
+
if (this.paymentProcessed) return;
|
|
3637
|
+
this.paymentProcessed = true;
|
|
3634
3638
|
if (this.pollInterval) {
|
|
3635
3639
|
clearInterval(this.pollInterval);
|
|
3636
3640
|
this.pollInterval = null;
|
package/dist/index.mjs
CHANGED
|
@@ -2442,6 +2442,8 @@ var ZendFiEmbeddedCheckout = class {
|
|
|
2442
2442
|
checkoutData = null;
|
|
2443
2443
|
pollInterval = null;
|
|
2444
2444
|
mounted = false;
|
|
2445
|
+
paymentProcessed = false;
|
|
2446
|
+
// Prevent duplicate success callbacks
|
|
2445
2447
|
constructor(config) {
|
|
2446
2448
|
this.config = {
|
|
2447
2449
|
linkCode: config.linkCode || "",
|
|
@@ -2545,7 +2547,7 @@ var ZendFiEmbeddedCheckout = class {
|
|
|
2545
2547
|
*/
|
|
2546
2548
|
startPaymentPolling() {
|
|
2547
2549
|
this.pollInterval = setInterval(async () => {
|
|
2548
|
-
if (!this.checkoutData) return;
|
|
2550
|
+
if (!this.checkoutData || this.paymentProcessed) return;
|
|
2549
2551
|
try {
|
|
2550
2552
|
const response = await fetch(
|
|
2551
2553
|
`${this.config.apiUrl}/api/v1/payments/${this.checkoutData.payment_id}/status`,
|
|
@@ -2558,7 +2560,7 @@ var ZendFiEmbeddedCheckout = class {
|
|
|
2558
2560
|
);
|
|
2559
2561
|
if (response.ok) {
|
|
2560
2562
|
const data = await response.json();
|
|
2561
|
-
if (data.status === "confirmed") {
|
|
2563
|
+
if (data.status === "confirmed" && !this.paymentProcessed) {
|
|
2562
2564
|
this.handlePaymentSuccess(data);
|
|
2563
2565
|
} else if (data.status === "failed") {
|
|
2564
2566
|
this.handlePaymentFailure(data);
|
|
@@ -2575,6 +2577,8 @@ var ZendFiEmbeddedCheckout = class {
|
|
|
2575
2577
|
* Handle successful payment
|
|
2576
2578
|
*/
|
|
2577
2579
|
handlePaymentSuccess(statusData) {
|
|
2580
|
+
if (this.paymentProcessed) return;
|
|
2581
|
+
this.paymentProcessed = true;
|
|
2578
2582
|
if (this.pollInterval) {
|
|
2579
2583
|
clearInterval(this.pollInterval);
|
|
2580
2584
|
this.pollInterval = null;
|