Al darle click al botón Continuar, se mostrará un snippet de código que debes copiar y/o adaptar en tu sitio web, dicho snippet trae un ejemplo de como puedes integrarlo.
Para integrar el script de Zenkipay, necesitas agregarlo a tu sitio, recomendamos agregarle tu zenkipayKey como query param, el cual puedes extraerlo del snippet; en caso contrario también puedes pasarlo como parámetro a los métodos que ofrece el script.
Importante:Tu zenkipayKey es requerida, ya sea que la proporciones desde su respectivo query param al importar el script o como parámetro en los métodos de Zenkipay
Este método te permite generar un botón de pago de ZenkiPay, y para indicarle en dónde debe crearse debes pasarle como primer parámetro el ID del elemento del DOM de tu página web en donde quieres que sea insertado.
Como segundo parámetro requiere un objeto Options, de los cuales sólo son necesarios las propiedades requeridas (purchaseData y purchaseSignature). Adicionalmente, puedes modificar el estilo del botón desde la propiedad styles, aquí puedes ver las opciones de estilos disponibles.
Este método te permite conocer si la configuración de tu comerciante tiene habilitado el descuento crypto love, retornándote el porcentage de dicho descuento, o en su defecto si lo tiene deshabilitado retornará null.
Dicho método requiere un parámetro options, de los cuales sólo son necesarios las propiedades requeridas (purchaseData y purchaseSignature). Al ejecutarlo te retornará mediante una promesa el porcentaje de descuento configurado desde el perfil de tu comercio, o en caso de que esté deshabilitado te retorará un valor null.
A continuación se muestra un ejemplo de cómo usarlo:
Este método te permite abrir la modal de pago sin hacer uso del botón de ZenkiPay.
Como primer parámetro requiere un objeto Options, de los cuales sólo son necesarios las propiedades requeridas (purchaseData y purchaseSignature). La propiedad styles es ignorada en este caso.
Ya que tengas preparada tu integración, procedemos a realizar un pago de pruebas desde tu sitio, para ello le damos click en el botón Haz un pago de prueba con datos firmados, lo que te mostrará una modal como la siguiente:
Ya que hayas realizado tu prueba con tus datos firmados con tus llaves, podemos continuar con tu selección de criptomonedas.
Definición de entidades
Nota:Las propiedades de cada entidad que tienen como sufijo un ? son opcionales, mientras que aquellas que tienen un ! son requeridas; para el caso de los parámetros aplica la misma regla del sufijo ? como opcionales.
<!DOCTYPE html><htmllang="en"><head><title>Pay with Zenkipay</title><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/></head><body><main><divid="btn-pay-with-zenkipay-container"></div></main><scripttype="application/javascript"src="https://resources.zenki.fi/zenkipay/script/zenkipay.js?zenkipayKey=e77e5b6662532432e9179ff4d33fe364ec88aacf9240e5e7673e474255e4a90c"></script><scripttype="application/javascript">constidButtonContainer="btn-pay-with-zenkipay-container";constoptions={purchaseData:'{"country":"US","shopperCartId":"l6l6jpce28ugg","merchantOrderId":"l6l6jpce2f649","shopperEmail":"hello@zenki.fi","purchaseSummary":{"currency":"USD","totalItemsAmount":"0.5","shipmentAmount":"0.25","subtotalAmount":"0.75","taxesAmount":"0.125","localTaxesAmount":"0.125","importCosts":"0.125","discountAmount":"0.25","additionalCharges":{"donation":"0.125"},"grandTotalAmount":"1"},"items":[{"itemId":"l6l6jpce3gzis","price":"0.5","quantity":"1","productName":"Javascript","thumbnailUrl":"https://cdn.tshirts.boutique/wp-content/uploads/2022/07/12213723/12100-105.jpg","metadata":{"size":"L"}}],"metadata":{"anotherId":"l6l6jpce1jrdw"}}',purchaseSignature:"THeBWuVviGSUUFKiac/BP79tQGjR3kk9YpEkWF/WXbwAKFaKZ0qpPfHCm4X6x/87f5APyCtKTCo94ukwKiDMHbiTM3X+5IFcgzxfiDsoeKiP3A5dLS9gOA77nlLaSkKDSwOs7doyhlKSgPcZPDN7y/JEBovJVZFb+09pO8WTptGXGSOxzzfhs0KAOTLX+EdK9EzEC85CSrhFn8dcEFdrCsU6r+Y9/SB7BixEPVd2C2bfrbFersaMIsR2ZMYsQl60XzVe8Rf+wvjKNeDykFLOpXAZi2svBbp7Zs/1rMnTBrwwbHG/6+fijHLJtsdaUKRauYyOK5FTgFyACOhXrn07v0cFUGxmB48Ah5a9giHWcNJAUZUNJPL4DSzwjKaE7eUejMRZH2/mAijEpvdmuxW4W00s+05eb1U1bPaYLfAwLG9yk+37iiTNpWgJ623qleEdS7Jh4eIEOPwMm+Umt3GQXH5sSUaj1j25e1NqWwtH/DeSHVPJeTUMIxrXxJJClzuMmOL5tYPLZN+QkxHJJYk4/lYXcqAY3BA5WZ+7dZhhWiWs3V3PU/7911izzX/k/n5QuSCn7LUfLvaNz4R0g9vWwmB89xwcyCSDLqjAGS6nDRqBQEZ5IFCbHfJ3jdcDRirkUFqGJ/lL7I9kRZnO+yyrP1fDbc78vcBWES2AgerIOVk=",};zenkiPay.button(idButtonContainer,options,handleZenkipayEvents);functionhandleZenkipayEvents(error,data,details){if(error)console.error({...details,error});elseconsole.log({...details,data});}</script></body></html>
Ejemplo de pago usando los métodos getDiscountPercentage y openModal
<!DOCTYPE html><htmllang="en"><head><title>Pay with Zenkipay</title><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/></head><body><main><buttonid="btn-pay-with-zenkipay-container">Pay with Zenkipay</button></main><scripttype="application/javascript"src="https://resources.zenki.fi/zenkipay/script/zenkipay.js?zenkipayKey=e77e5b6662532432e9179ff4d33fe364ec88aacf9240e5e7673e474255e4a90c"></script><scripttype="application/javascript">constidButtonPayWithZenkipay="btn-pay-with-zenkipay";constbtn=document.getElementById(idButtonPayWithZenkipay);constoptions={purchaseData:'{"country":"US","shopperCartId":"l6l6jpce28ugg","merchantOrderId":"l6l6jpce2f649","shopperEmail":"hello@zenki.fi","purchaseSummary":{"currency":"USD","totalItemsAmount":"0.5","shipmentAmount":"0.25","subtotalAmount":"0.75","taxesAmount":"0.125","localTaxesAmount":"0.125","importCosts":"0.125","discountAmount":"0.25","additionalCharges":{"donation":"0.125"},"grandTotalAmount":"1"},"items":[{"itemId":"l6l6jpce3gzis","price":"0.5","quantity":"1","productName":"Javascript","thumbnailUrl":"https://cdn.tshirts.boutique/wp-content/uploads/2022/07/12213723/12100-105.jpg","metadata":{"size":"L"}}],"metadata":{"anotherId":"l6l6jpce1jrdw"}}',purchaseSignature:"THeBWuVviGSUUFKiac/BP79tQGjR3kk9YpEkWF/WXbwAKFaKZ0qpPfHCm4X6x/87f5APyCtKTCo94ukwKiDMHbiTM3X+5IFcgzxfiDsoeKiP3A5dLS9gOA77nlLaSkKDSwOs7doyhlKSgPcZPDN7y/JEBovJVZFb+09pO8WTptGXGSOxzzfhs0KAOTLX+EdK9EzEC85CSrhFn8dcEFdrCsU6r+Y9/SB7BixEPVd2C2bfrbFersaMIsR2ZMYsQl60XzVe8Rf+wvjKNeDykFLOpXAZi2svBbp7Zs/1rMnTBrwwbHG/6+fijHLJtsdaUKRauYyOK5FTgFyACOhXrn07v0cFUGxmB48Ah5a9giHWcNJAUZUNJPL4DSzwjKaE7eUejMRZH2/mAijEpvdmuxW4W00s+05eb1U1bPaYLfAwLG9yk+37iiTNpWgJ623qleEdS7Jh4eIEOPwMm+Umt3GQXH5sSUaj1j25e1NqWwtH/DeSHVPJeTUMIxrXxJJClzuMmOL5tYPLZN+QkxHJJYk4/lYXcqAY3BA5WZ+7dZhhWiWs3V3PU/7911izzX/k/n5QuSCn7LUfLvaNz4R0g9vWwmB89xwcyCSDLqjAGS6nDRqBQEZ5IFCbHfJ3jdcDRirkUFqGJ/lL7I9kRZnO+yyrP1fDbc78vcBWES2AgerIOVk=",};zenkiPay.getDiscountPercentage(options).then((discountPercentage)=>{if(!btn)return;consttext=btn.innerText;btn.innerText=`${btn.innerText} -${discountPercentage}% Off`;});if(btn){btn.addEventListener("click",()=>{zenkiPay.openModal(options,handleZenkipayEvents);});}functionhandleZenkipayEvents(error,data,details){if(error)console.error({...details,error});elseconsole.log({...details,data});}</script></body></html>