SDK
NodeJS

Wallet

8min
implementación ejemplo https //github com/mobbexco/ejemplos/tree/main/wallet https //github com/mobbexco/ejemplos/tree/main/wallet uso creación del checkout en el backend, en la ruta /checkout se utiliza la librería mobbex node https //github com/grosfeldezekiel/mobbex node#readme donde en primer lugar se utiliza configurations setprivatekey() pasando como argumento la clave privada luego se realiza el checkout con checkout create() , pasando como argumento el objeto con el checkout admite todos los parámetros de checkout https //mobbex dev/vprq checkout , pero además se establecen los siguientes customer objeto de tipo json con los datos del cliente obligatorios uid identificador único e interno del cliente debe ser único para cada cliente name nombre del cliente identification dni phone número de celular email email del cliente wallet habilita la opción de billetera virtual para el almacenado de tarjetas options objeto con opciones domain dominio desde el que se procesará el checkout ( obligatorio ) la función devuelve un objeto, del cuál solo obtenemos la lista wallet , y el url para agregar nuevas tarjetas dentro del objeto data con el wallet y el url del checkout ahora podemós procesar el pago en el front respuesta { "result" true, "data" { "id" "pycnwif9msxv1qylng", "url" "https //api mobbex com/p/checkout/v2/pycnwif9msxv1qylng", "description" "descripción de la venta", "currency" "ars", "total" 5, "created" 1598424066850, "customer" { "name" "demo mobbex" }, "wallet" \[ { "it" "5ca170c7 b74a 469a 8e61 3635148cbc5d", "name" "visa terminada en 8545", "source" { "reference" "visa comafi", "name" "visa banco comafi", "shortname" "visa comafi", "card" { "currency" "ars", "product" { "name" "visa", "shortname" "visa", "variant" "credit", "lengths" \[ 16 ], "gaps" \[ 4, 8, 12 ], "code" { "name" "cvv", "length" 3, "position" 1 }, "logo" "https //res mobbex com/images/sources/png/visa png" }, "issuer" { "shortname" "comafi", "name" "banco comafi", "color" "#789c48", "logo" "https //res mobbex com/images/sources/png/comafi png" }, "level" "classic" }, "type" "card", "priority" 0 }, "card" { "expiration month" 2, "expiration year" 24, "card number" "402123 8888" }, "installments" \[ { "name" "1 pago", "description" "1 pago", "count" 1, "reference" "1", "totals" { "currency" { "value" "ars", "label" "peso argentino", "symbol" "$", "hidden" false }, "installment" { "amount" 5 1, "count" 1 }, "total" 5 1, "financial" { "percentage" 2, "amount" 0 1 } } }, { "name" "3 cuotas", "description" "3 cuotas", "count" 3, "reference" "3", "totals" { "currency" { "value" "ars", "label" "peso argentino", "symbol" "$", "hidden" false }, "installment" { "amount" 1 94, "count" 3 }, "total" 5 83, "financial" { "percentage" 16 5, "amount" 0 83 } } }, { "name" "6 cuotas", "description" "6 cuotas", "count" 6, "reference" "6", "totals" { "currency" { "value" "ars", "label" "peso argentino", "symbol" "$", "hidden" false }, "installment" { "amount" 1 09, "count" 6 }, "total" 6 55, "financial" { "percentage" 31, "amount" 1 55 } } }, { "name" "10 cuotas", "description" "10 cuotas", "count" 10, "reference" "10", "totals" { "currency" { "value" "ars", "label" "peso argentino", "symbol" "$", "hidden" false }, "installment" { "amount" 0 51, "count" 10 }, "total" 5 1, "financial" { "percentage" 2, "amount" 0 1 } } }, { "name" "ahora 12", "description" "", "count" 12, "reference" "ahora 12", "totals" { "currency" { "value" "ars", "label" "peso argentino", "symbol" "$", "hidden" false }, "installment" { "amount" 0 43, "count" 12 }, "total" 5 1, "financial" { "percentage" 2, "amount" 0 1 } } }, { "name" "ahora 18", "description" "", "count" 18, "reference" "ahora 18", "totals" { "currency" { "value" "ars", "label" "peso argentino", "symbol" "$", "hidden" false }, "installment" { "amount" 0 28, "count" 18 }, "total" 5 1, "financial" { "percentage" 2, "amount" 0 1 } } } ] } ] } } aclaracion al ser el objeto que se devuelve muy grande, es necesario, a la hora de pasar información al front, es necesario, previamente, descomponerlo y colocarlo en otras variables, ya que de lo contrario, su valor solo será \[object]\[object] frontend del checkout mostramos al cliente la lista de las tarjetas con su name , un formulario listando sus posibles installments y solicitando código de seguridad en el ejemplo se utiliza un \<select> con todos los nombres de la lista de installments (que se encuentra dentro del objeto wallet) el value de los options es el reference de los installments además utilizamos un \<input> para el código de seguridad y un \<input type="hidden"> para el intent token de la tarjeta para que el usuario pueda agregar una tarjeta nueva, se utiliza un link con el url procesar pago para procesar el pago es necesario agregar al header a la hora de utilizar el sdk nos interesan 3 cosas de la tarjeta a utizar intenttoken aparece dentro del objeto wallet con el nombre de "it" installment aparece como una lista de objetos dentro del wallet, del objeto solo nos interesa "reference" securitycode codigo de seguridad de la tarjeta (se solicita al cliente) script con el sdk para procesar el pago, cuando el usuario realiza una acción como clickear el botón "pagar", debemos ejecutar la función mobbex operation process() pasando como argumento un objeto con el intenttoken , el installment y el securitycode de la tarjeta que se usará \<script> window\ mobbexjs operation process({ intenttoken "{{ intenttoken }}", installment "{{ cuota elegida }}" securitycode "{{ código de seguridad }}" }) then(data => console log(data)) error(error => console log(error)) \</script> respuesta una vez procesado el pago, nos retornara un objeto con el status del pago, o un error, referencia https //mobbex dev/docs/statuses