UNPKG

bsecure-payments-js

Version:

bSecure Payment Plugin is a JavaScript library that allows you to securely process your payments. This plugin instantly creates a form that adheres to PCI, HIPAA, GDPR, or CCPA security requirements.

83 lines (75 loc) 3.97 kB
const moveBack = () =>{ window.location.href = window.location.origin + window.location.pathname.split("extend")[0] } function goBackPrompt(text) { if (confirm(text) == true) { document.getElementById("bSecurePaymentPluginContainer")?.remove(); moveBack() } } function callForPlugin(){ const urlSearchParams = new URLSearchParams(window.location.search); const params = Object.fromEntries(urlSearchParams.entries()); if(Object.keys(params).length === 0){ goBackPrompt("Please fill form details") } bSecurePaymentPluginResponseHandler.onErrorAlert = function(data) { new Notyf({ duration: 5000}).error(data.message[0]); console.log("onError: ", data) }; bSecurePaymentPluginResponseHandler.onSuccessAlert = function(data) { new Notyf({ duration: 5000}).success(data.message[0]); console.log("onSuccess: ", data) }; bSecurePaymentPluginResponseHandler.onValidationErrorAlert = function(data) { new Notyf({ duration: 5000}).error(data.message[0]); console.log("onValidationError: ", data) }; bSecurePaymentPluginResponseHandler.onProcessPaymentSuccess = function(data) { console.log("onProcessPaymentSuccess: ", data) setTimeout(() => { goBackPrompt("Order completed move back to home page") }, 4000); }; bSecurePaymentPluginResponseHandler.onProcessPaymentFailure = function(data) { new Notyf({ duration: 5000}).error(data.message[0]); setTimeout(() => { goBackPrompt("Payment failure move back to home page") }, 1000); console.log("onProcessPaymentFailure: ", data) }; //Set params values in bSecurePaymentTransactionParameters delete bSecurePaymentTransactionParameters.__17seh__ ; delete bSecurePaymentTransactionParameters['__17seh__']; bSecurePaymentTransactionParameters.__00trid__ = params.order_id; bSecurePaymentTransactionParameters.__01curr__ = params.currency; bSecurePaymentTransactionParameters.__02trdt__ = Date.now().toString(); bSecurePaymentTransactionParameters.__03stamt__ = params.sub_total; bSecurePaymentTransactionParameters.__04damt__ = params.discount; bSecurePaymentTransactionParameters.__05tamt__ = params.total; bSecurePaymentTransactionParameters.__06cname__ = params.name; bSecurePaymentTransactionParameters.__07ccc__ = params.country_code; bSecurePaymentTransactionParameters.__08cphn__ = params.phone; bSecurePaymentTransactionParameters.__09cemail__ = params.email; bSecurePaymentTransactionParameters.__10ccc__ = params.country; bSecurePaymentTransactionParameters.__11cstate__ = params.province; bSecurePaymentTransactionParameters.__12ccity__ = params.city; bSecurePaymentTransactionParameters.__13carea__ = params.area; bSecurePaymentTransactionParameters.__14cfadd__ = params.address; bSecurePaymentTransactionParameters.__15mid__ = params.merchant_id; bSecurePaymentTransactionParameters.__16stid__ = params.store_id; bSecurePaymentTransactionParameters.__18ver__ = "1.1"; bSecurePaymentTransactionParameters.__20red__ = "http://host name"; bSecurePaymentTransactionParameters.__21cenv__ = params.client_env; const salt = params.client_id let _signature = salt+"&"; Object.keys(bSecurePaymentTransactionParameters) .sort() .forEach(function(v, idx, array) { let _val = bSecurePaymentTransactionParameters[v].toString().replace(/\s/g, ''); _signature += _val.concat(idx === array.length - 1 ? "" : "&") }); let _hash = CryptoJS.HmacSHA256(_signature,salt).toString() ; bSecurePaymentTransactionParameters.__17seh__ = _hash.toUpperCase(); try { bSecureApp.initialize("bSecurePaymentPluginContainer"); } catch (error) { console.info("error found in setTransactionParameters error: ", error); } }