Help
RSS
API
Feed
Maltego
Contact
Domain > success.gokwik.co
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-12-12
18.65.25.77
(
ClassC
)
2026-01-23
18.161.6.95
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Fri, 23 Jan 2026 15:49:25 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://success.gokwik.co/X-Cache: Redirect from cloudfrontVia: 1.1 626ad4a6bf529166d2aad94a2957694c.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P1X-Amz-Cf-Id: n8q25ri7kNmNXwDA5NH8EQumraDw8FJYNSzhv_WQUinyMtOv_4cvlw html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 12494Connection: keep-aliveLast-Modified: Mon, 12 Jan 2026 15:50:18 GMTx-amz-server-side-encryption: AES256Accept-Ranges: bytesServer: AmazonS3Date: Fri, 23 Jan 2026 15:49:25 GMTETag: 3ea79669ae4d9589aab7c24f5593cf97X-Cache: Hit from cloudfrontVia: 1.1 b5695e36d7fbc522ece27885d73757ae.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P1X-Amz-Cf-Id: 2Wz8i1Gx7Kefb2E68V9JlwkQAy_EX7wNOwbVsiIklBW3sOSlkbm9SgAge: 36685 !DOCTYPE html>html>head> meta nameviewport contentwidthdevice-width, initial-scale1.0 /> style> .container { display: flex; justify-content: center; align-items: center; flex-direction: column; width: 100%; height: 100vh; text-align: center; gap: 16px; } h4, h1 { margin: 0; } .btn { padding: 8px 16px; font-size: 14px; border-radius: 8px; border: none; margin-top: 4px; box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } .retry-btn { background-color: black; color: white; } .hide { display: none; } .loader-img { height: 118px; } .custom-loader { width: 12px; height: 12px; border-radius: 50%; display: block; margin: 15px auto; position: relative; color: #014990; box-sizing: border-box; animation: animloader 1s linear infinite alternate; } @keyframes animloader { 0% { box-shadow: -38px -6px, -14px 6px, 14px -6px, 38px 6px; } 20% { box-shadow: -38px 6px, -14px -6px, 14px 6px, 38px -6px; } 40% { box-shadow: -38px -6px, -14px 6px, 14px -6px, 38px 6px; } 60% { box-shadow: -38px 6px, -14px -6px, 14px 6px, 38px -6px; } 80% { box-shadow: -38px -6px, -14px 6px, 14px -6px, 38px 6px; } 100% { box-shadow: -38px 6px, -14px -6px, 14px 6px, 38px -6px; } } /style>/head>body> div> div classorder-successful container hide> img srchttps://pdp.gokwik.co/assets/icons/order-successfull.svg /> h1>Congratulations!!/h1> h4>Payment completed successfully/h4> /div> div classorder-pending container> img classloader-img srchttps://pdp.gokwik.co/assets/icons/gokwik-small.svg /> span classcustom-loader>/span> h3>Please wait while we verify your payment status/h3> /div> div classorder-failed container hide> img srchttps://pdp.gokwik.co/assets/icons/failed.svg /> h4 classorder-failed-message> Your transaction could not be completed at this time, Please try again with a different payment method. /h4> div classbtn-wrapper> button classbtn retry-btn onclickredirectToOtherWindow();> Retry payment /button> button classbtn close-btn hide>Close/button> /div> /div> /div>/body>script> let envPresets { qa: { baseUrl: https://api-gw-v4.dev.gokwik.io/qa/replica, redirectionBaseUrl: https://api-gw-v4.dev.gokwik.io/qa/replica, eventsBaseUrl: https://qa-analytics.dev.gokwik.io, }, sandbox: { baseUrl: https://sandbox.gokwik.co, redirectionBaseUrl: https://sandbox.gokwik.co, eventsBaseUrl: https://sandbox-hits.gokwik.co, }, prod: { baseUrl: https://api.gokwik.co, redirectionBaseUrl: https://gkx.gokwik.co, eventsBaseUrl: https://hits.gokwik.co, }, }; let env envPresets.prod; let captureInterval null; let checkoutUrl ; let orderPending document.querySelector(.order-pending); let orderSuccess document.querySelector(.order-successful); let orderFail document.querySelector(.order-failed); let orderFailedMessage document.querySelector(.order-failed-message); let closeBtn document.querySelector(.close-btn); let retryCount 3; let requestId ; let mId ; let cartDetails {}; let captureDetails; try { const urlParams new URLSearchParams(window.location.search); if (urlParams.has(captureInfo) && urlParams.has(gokwikOid)) { const gId urlParams.get(gokwikOid); const info urlParams.get(captureInfo); const url atob(info); checkoutUrl getUpdatedUrl(url, gId); getCaptureDetails(gId); } else if (urlParams.has(ref_id)) { const refId urlParams.get(ref_id); const reqId urlParams.get(req_id); requestId reqId; getRedirectionDetails(refId); } else { orderPending.classList.add(hide); orderSuccess.classList.remove(hide); closeWindow(); } } catch (error) { orderPending.classList.add(hide); orderSuccess.classList.remove(hide); closeWindow(); } function updateQueryParam(url, paramName, paramValue) { let urlObject new URL(url); urlObject.searchParams.set(paramName, paramValue); return urlObject.toString(); } function getUpdatedUrl(url, gId) { try { let newUrl url; const urlObj new URL(url); const urlParams new URLSearchParams(urlObj.search); requestId urlParams.get(mrid); if (urlParams.has(gokwikOid)) { newUrl updateQueryParam(newUrl, gokwikOid, gId); } if (urlParams.has(isSameWindowRedirection)) { newUrl updateQueryParam(newUrl, isSameWindowRedirection, true); } if ( !urlParams.has(gokwikOid) && !urlParams.has(isSameWindowRedirection) ) { newUrl `${newUrl}&isSameWindowRedirectiontrue&gokwikOid${gId}`; } return newUrl; } catch (er) { } return ; } function closeWindow() { setTimeout(() > { window.close(); }, 2000); } function redirectToOtherWindow(delay 2000, url ) { const redirectionUrl url ? url : checkoutUrl; setTimeout(() > { window.location.href redirectionUrl; }, delay); } function clearCart() { const merchantUrl checkoutUrl.split(?)0; const xhr new XMLHttpRequest(); xhr.open(GET, `${merchantUrl}/clear.js`); xhr.send(); } function processCaptureData(response) { if (response.data) { if (response.data?.order_state order_retry) { orderFailedMessage.textContent Due to high demand, were yet to confirm this order. We regret the inconvenience. Please allow us 1-2 hours to look into this on priority and share the confirmation SMS. In case order was not placed, any amount deducted will be refunded within 4-7 days; orderPending.classList.add(hide); orderFail.classList.remove(hide); closeBtn.classList.remove(hide); clearInterval(captureInterval); clearCart(); closeBtn.addEventListener(click, function () { redirectToOtherWindow(0); }); } if (response.data.payment_status PAID) { orderPending.classList.add(hide); orderSuccess.classList.remove(hide); clearInterval(captureInterval); clearCart(); if (cartDetails) { // send event sendSuccessEvent(response.data); } const newCheckoutUrl getRedirectionUrl(response.data) redirectToOtherWindow(2000, newCheckoutUrl); } else if ( (response.data.payment_status PENDING && response.data?.transaction_status failed) || response.data.payment_status PAYMENT FAILED ) { orderPending.classList.add(hide); orderFail.classList.remove(hide); clearInterval(captureInterval); redirectToOtherWindow(3000); } } } async function startCapture(data) { if (!data?.mid) { orderPending.classList.add(hide); orderSuccess.classList.remove(hide); return; } mId data.mid; if (data?.request_id) { requestId data.request_id; } try { cartDetails await getCart(); } catch (error) { console.error(error); } const capture () > { const url env.baseUrl + /v1/payment/capture; const xhr new XMLHttpRequest(); xhr.open(POST, url, true); xhr.setRequestHeader(Content-Type, application/json); xhr.setRequestHeader(X-Gokwik-Token, data.auth_token); xhr.onload function () { if (xhr.status > 200 && xhr.status 300) { var responseData JSON.parse(xhr.responseText); processCaptureData(responseData); } else { logEvent({ name: api_failure_payment_capture }); } }; xhr.onerror function () { logEvent({ name: api_failure_payment_capture }); }; xhr.send(JSON.stringify(data)); }; capture(); captureInterval setInterval(capture, 10000); } function getCaptureDetails(gId) { const url env.baseUrl + /v1/ms-interface/order/capture-details; const xhr new XMLHttpRequest(); xhr.open(GET, `${url}/${gId}`, true); xhr.onload function () { if (xhr.status > 200 && xhr.status 300) { var responseData JSON.parse(xhr.responseText); captureDetails responseData.data; startCapture(responseData.data); } else { handleFailure(); } }; xhr.onerror function () { handleFailure(); }; xhr.send(); function handleFailure() { logEvent({ name: api_failure_get_capture_details }); retryCount--; if (retryCount > 0) { setTimeout(() > { getCaptureDetails(gId); }, 1000); } else { orderPending.classList.add(hide); orderSuccess.classList.remove(hide); } } } function getRedirectionDetails(refId) { const url `${env.redirectionBaseUrl}/v1/payments/transactions/redirection?ref_id${refId}`; const xhr new XMLHttpRequest(); xhr.open(GET, url, true); xhr.onload function () { if (xhr.status > 200 && xhr.status 300) { var responseData JSON.parse(xhr.responseText); if (responseData?.data?.success_redirection_url) { postForm(responseData.data.success_redirection_url); } } else { logEvent({ name: api_failure_get_redirection_details }); } }; xhr.send(); } function logEvent({ name, eventType apiResponse, data {} }) { const analyticsObj { timestamp: Date.now(), userAgent: navigator?.userAgent, version: 1, requestId, name, type: event, eventType, data, }; let url env.eventsBaseUrl + /api/v1/events; const xhr new XMLHttpRequest(); xhr.open(POST, url, true); xhr.setRequestHeader(Content-Type, application/json); xhr.send(JSON.stringify(analyticsObj)); } function postForm(path, params {}, method post) { const form document.createElement(form); form.setAttribute(method, method); form.setAttribute(action, path); for (var key in params) { if (params.hasOwnProperty(key)) { var hiddenField document.createElement(input); hiddenField.setAttribute(type, hidden); hiddenField.setAttribute(name, key); hiddenField.setAttribute(value, paramskey); form.appendChild(hiddenField); } } document.body.appendChild(form); form.submit(); } async function getCart() { return new Promise((res) > { let url env.baseUrl + /v1/user/cart; let params new URLSearchParams(); params.set(request_id, requestId); params.set(frontend, true); const xhr new XMLHttpRequest(); xhr.open(GET, `${url}?${params.toString()}`, true); xhr.setRequestHeader(Content-Type, application/json); xhr.setRequestHeader(merchant_id, mId); xhr.onload function () { if (xhr.status > 200 && xhr.status 300) { const responseData JSON.parse(xhr.responseText); res(responseData?.data); } res({}); }; xhr.onerror function () { logEvent({ name: api_failure_get_cart }); res({}); }; xhr.send(); }); } function getCheckoutUrl (captureRespData) { return captureRespData?.original_checkout_url ?? captureRespData?.checkout_url ?? checkoutUrl; } function getRedirectionUrl (captureRespData) { if (captureRespData?.custom_thankyou_page_url) { return captureRespData.custom_thankyou_page_url; } else if (captureRespData?.original_checkout_url?.includes(authenticate)) { return captureRespData.original_checkout_url; } else { return captureRespData?.checkout_url ?? checkoutUrl } } function sendSuccessEvent(captureRespData) { const merchantUrl checkoutUrl.split(?)0; const email new URL(captureRespData.checkout_url).searchParams.get(email) || ; const orderSuccessBody { moid: captureRespData.order_id, phone: captureDetails.phone, email, merchantUrl, checkoutUrl: getCheckoutUrl(captureRespData), graphqlOrderId: captureRespData.graphqlOrderId, address: { id: cartDetails.aid, }, discount: { amount: parseFloat(cartDetails?.discount?.total_discount?.toString()), title: cartDetails?.discount?.title || , }, order_name: captureRespData.order_name, order_type: captureDetails.order_type, total_price: captureRespData.total, cart: cartDetails, }; if (window.ReactNativeWebView) { window.ReactNativeWebView.postMessage( JSON.stringify({ action: orderSuccess, eventname: orderSuccess, payload: { data: { requestId, ...(orderSuccessBody || {}) } }, data: {orderSuccessBody: orderSuccessBody} }) ); } }/script>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]