Skip to content

Commit

Permalink
Add expiration time to url from localstorage
Browse files Browse the repository at this point in the history
  • Loading branch information
adrian-martinez-dev committed Feb 27, 2024
1 parent c13c427 commit c2bb542
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 7 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ const checkoutData = {

const apiKey = "4c87c36e697e65ddfe288be0afbe7967ea0ab865";
const returnUrl = "http://my-website:8080/checkout"
const successUrl = "http://my-website:8080/sucess"
const successUrl = "http://my-website:8080/success"
// if using script tag, it should be initialized like this
// new TonderSdk.InlineCheckout
const inlineCheckout = new InlineCheckout({
Expand Down
43 changes: 37 additions & 6 deletions src/classes/3dsHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,50 @@ export class ThreeDSHandler {
saveVerifyTransactionUrl() {
const url = this.payload?.next_action?.redirect_to_url?.verify_transaction_status_url
if (url) {
localStorage.setItem("verify_transaction_status_url", url)
this.saveUrlWithExpiration(url)
} else {
const url = this.payload?.next_action?.iframe_resources?.verify_transaction_status_url
if (url) {
localStorage.setItem("verify_transaction_status_url", url)
this.saveUrlWithExpiration(url)
} else {
console.log('No verify_transaction_status_url found');
}
}
}

saveUrlWithExpiration(url) {
try {
const now = new Date()
const item = {
url: url,
// Expires after 20 minutes
expires: now.getTime() + 20 * 60 * 1000
}
localStorage.setItem('verify_transaction_status', JSON.stringify(item))
} catch (error) {
console.log('error: ', error)
}
}

getUrlWithExpiration() {
const item = JSON.parse(localStorage.getItem("verify_transaction_status"))
if (!item) return

const now = new Date()
if (now.getTime() > item.expires) {
this.removeVerifyTransactionUrl()
return null
} else {
return item.url
}
}

removeVerifyTransactionUrl() {
localStorage.removeItem("verify_transaction_status_url")
localStorage.removeItem("verify_transaction_status")
}

getVerifyTransactionUrl() {
return localStorage.getItem("verify_transaction_status_url")
return localStorage.getItem("verify_transaction_status")
}

loadIframe() {
Expand Down Expand Up @@ -62,8 +89,12 @@ export class ThreeDSHandler {
}
}

getRedirectUrl() {
return this.payload?.next_action?.redirect_to_url?.url
}

redirectToChallenge() {
const url = this.payload?.next_action?.redirect_to_url?.url
const url = this.getRedirectUrl()
if (url) {
this.saveVerifyTransactionUrl()
window.location = url;
Expand Down Expand Up @@ -141,7 +172,7 @@ export class ThreeDSHandler {
}

async verifyTransactionStatus() {
const verifyUrl = this.getVerifyTransactionUrl();
const verifyUrl = this.getUrlWithExpiration();

if (verifyUrl) {
const url = `${this.baseUrl}${verifyUrl}`;
Expand Down

0 comments on commit c2bb542

Please sign in to comment.