Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/08/2015, 12:44
Rebuilding
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 10 años, 5 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>