Foros del Web » Programando para Internet » Jquery »

El token no se genera adecuadamente

Estas en el tema de El token no se genera adecuadamente en el foro de Jquery en Foros del Web. Estoy usando la API de Conekta https://www.conekta.io/es/docs/referencias/conekta-js , principalmente un ejemplo que dan en otra pagina complementado con el del vinculo que puse, pero la ...
  #1 (permalink)  
Antiguo 02/08/2015, 12:44
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 10 años, 4 meses
Puntos: 4
El token no se genera adecuadamente

Estoy usando la API de Conekta https://www.conekta.io/es/docs/referencias/conekta-js, principalmente un ejemplo que dan en otra pagina complementado con el del vinculo que puse, pero la consola del Chrome dice que el token es invalido, y la venta no se procesa adecuadamente al parecer por la culpa de este javascript
Este es el archivo examples.js que viene incluido en el HTML

Código Javascript:
Ver original
  1. <script>
  2. $(document).ready(function(){
  3.   $('.version').click(function(){
  4.     var callType = $(this).attr('id');
  5.     if(callType == "basic"){
  6.       $('.advanced').slideUp(350);
  7.       $('#advanced').removeClass('active');
  8.       $(this).addClass('active');
  9.     }
  10.     if(callType == "advanced"){
  11.       $('.advanced').slideDown({queue: false}, 350);
  12.       $('#basic').removeClass('active');
  13.       $(this).addClass('active');
  14.     }
  15.   });
  16.   // CVC Input security
  17.   $("input[name='card_cvc']").focus(function(){$(this).attr('type','text');});
  18.   $("input[name='card_cvc']").blur(function(){$(this).attr('type','password');});
  19.   // Input formats
  20.   // Cards
  21.   $('input[name="card_number"]').formatter({
  22.     'pattern': '{{9999}} {{9999}} {{9999}} {{9999}}'
  23.   });
  24.   $('input[name="card_exp"]').formatter({
  25.     'pattern': '{{99}} / {{9999}}'
  26.   });
  27.   $('input[name="card_cvc"]').formatter({
  28.     'pattern': '{{999}}'
  29.   });
  30. });
  31.  
  32. function validar(){
  33.     var numtarjeta=$('input[name="card_number"]').val();
  34.     var nombretarjeta=$('input[name="customer_name"]').val();
  35.     var cvc=$('input[name="card_cvc"]').val();
  36.     var card_exp=$('input[name="card_exp"]').val();
  37.     var resultado=card_exp.split(" ");
  38.     var mes = $.trim(resultado[0]);
  39.     var ano = $.trim(resultado[2]);
  40.     var numtarjetaerror=Conekta.card.validateNumber(numtarjeta);
  41.     var expiraerror=Conekta.card.validateExpirationDate(mes, ano);
  42.     var cvcerror=Conekta.card.validateCVC(cvc);
  43.     var guardarerror=" ";
  44.     if(numtarjetaerror==false){
  45.         guardarerror+="La tarjeta introducida es incorrecta\n";
  46.     }
  47.     if(expiraerror==false){
  48.         guardarerror+="La fecha de expiracion no es correcta\n";
  49.     }
  50.     if(cvcerror==false){
  51.         guardarerror+="El codigo de verificacion no es correcto\n";
  52.     }
  53.     if(numtarjetaerror==true && expiraerror==true && cvcerror==true){
  54.         enviartarjeta(nombretarjeta,numtarjeta,ano,mes,cvc);
  55.     }else{
  56.         alert(guardarerror);
  57.     }
  58.      $("#enviarinfo").prop("disabled", true);
  59. }
  60.  
  61. function enviartarjeta(nombretarjeta,numtarjeta,ano,mes,cvc){
  62.     Conekta.setPublishableKey("key_Cyt1btNDJrsZ5m2xjmKTekg");
  63.     Conekta.getPublishableKey();
  64. /* Los parámetros pueden ser un objeto de javascript, una forma de HTML o una forma de JQuery */
  65.     var errorResponseHandler, successResponseHandler, tokenParams;
  66.     tokenParams = {
  67.         "card": {
  68.         "number": numtarjeta,
  69.         "name": nombretarjeta,
  70.         "exp_year": ano,
  71.         "exp_month": mes,
  72.         "cvc": cvc
  73.         }
  74.     };
  75. /* Después de tener una respuesta exitosa, envía la información al servidor */
  76.     successResponseHandler = function(token) {
  77.       return $.post('cargotarjeta.php?token_id=' + token.id, function() {
  78. //      return document.location = 'cargotarjeta.php';
  79.  
  80.       });
  81.     };
  82.  
  83.     /* Después de recibir un error */
  84.     errorResponseHandler = function(error) {
  85.         $("#tarjeta-errors").text(response.message);
  86. //    return console.log(error.message);
  87.     };
  88.     /* Tokenizar una tarjeta en Conekta */
  89.     Conekta.token.create(tokenParams, successResponseHandler, errorResponseHandler);
  90. //  window.location.assign("http://localhost/a/test/cargotarjeta.php");
  91. }
  92. </script>

Este es el HTML

Código HTML:
Ver original
  1. <script src='jquery.js'></script>
  2.   <script src='examples.js'></script>
  3.   <script src='jquery.formatter.js'></script>
  4.   <script type="text/javascript" src="conekta.js"></script>
  5. </head>
  6. <form method="post">
  7. <div id="AjaxCapa"></div>
  8. <div id="tarjeta-errors"></div>
  9.         <div class='input_box'>
  10.             <div class="descripciones">
  11.           <label for='customer_name'>Nombre del Tarjetahabiente</label>
  12.             </div>
  13.           <input name='customer_name' type='text' class="infofinanciera" size="30"  data-conekta="card[name]">
  14.         </div>
  15.         <div class='input_box'>
  16.            <div class="descripciones">
  17.               <label for='card_number'>Número de tarjeta (sin guiones)</label>
  18.            </div>
  19.           <input name='card_number' value="4242424242424242" placeholder='' type='text'  class="infofinanciera" size="12" data-conekta="card[number]">
  20.         </div>
  21.         <div class='input_box'>
  22.             <div class="descripciones">
  23.               <label for='card_exp'>F. de Expiración</label>
  24.             </div>
  25.           <input name='card_exp' placeholder='' type='text'  class="infofinanciera" size="3" >
  26.           <br>
  27.         </div>
  28.         <div class='input_box'>
  29.             <div class="descripciones">
  30.               <label for='card_cvc'>Cód. de Seguridad</label>
  31.             </div>
  32.           <input name='card_cvc' placeholder='' type='text'  class="infofinanciera" size="1"data-conekta="card[cvc]">
  33.           <br>
  34.      
  35.           <input type="submit" value="validar" onClick="validar()" id="enviarinfo">
  36. </form>
  37.         </div>
  #2 (permalink)  
Antiguo 05/08/2015, 16:34
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: El token no se genera adecuadamente

Seguí el código, y si te genera error en el token, es porque se dispara el evento errorResponseHandler, este evento se dispara luego de haber llamado a Conekta.token.create con los parámetros incluidos en tokenParams

Es decir, de haber algún error, está en los valores que lleva el tokenParams (basta con hacer un console.log(tokenParams) para ver qué está mandando y revisar si está en el formato correcto).

Luego de eso ya sería problema de lo que hace Conekta.token.create


Saludos!

Etiquetas: genera, html, input, javascript, js, php, token
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:28.