2015-08-10 13 views
8

Laravel 5.1 ile Stripe kullanıyorum ve reddedilmesi gereken bir test kartı numarası girdiğimde hiçbir hata almamam dışında her şeyin var; Yani, gerektiğinde resonse.errors asla var olmaz. olursa olsun kullandığınız test kartı stripeResponseHandler() fonksiyonu yanıtta hataları cevap vermiyorStripe test modunda herhangi bir kart reddetmiyor

: her şey iyi (tok_16Y3wFAMxhd2ngVpHnky8VWX örneğin) geçti sanki

geri jeton alıyorum. Burada söz konusu kod şudur:

var PublishableKey = 'pk_test_Ed0bCarBWsgCXGBtjEnFeBVJ'; // Replace with your API publishable key 
Stripe.setPublishableKey(PublishableKey); 

/* Create token */ 
var expiry = $form.find('[name=cardExpiry]').payment('cardExpiryVal'); 
var ccData = { 
    number: $form.find('[name=cardNumber]').val().replace(/\s/g, ''), 
    cvc: $form.find('[name=cardCVC]').val(), 
    exp_month: expiry.month, 
    exp_year: expiry.year 
}; 

Stripe.card.createToken(ccData, function stripeResponseHandler(status, response) { 
    console.log(status); 
    if (response.error) { 
     /* Visual feedback */ 
     $form.find('[type=submit]').html('Please Try Again'); 
     /* Show Stripe errors on the form */ 
     $form.find('.payment-errors').text(response.error.message); 
     $form.find('.payment-errors').closest('.row').show(); 
    } else { 
     /* Visual feedback */ 
     $form.find('[type=submit]').html('Processing <i class="fa fa-spinner fa-pulse"></i>'); 
     /* Hide Stripe errors on the form */ 
     $form.find('.payment-errors').closest('.row').hide(); 
     $form.find('.payment-errors').text(""); 
     // response contains id and card, which contains additional card details 
     console.log(response.id); 
     console.log(response.card); 
     var token = response.id; 
     var email = $form.find('[name=email]').val(); 
     var formToken = $form.find('[name=_token]').val(); 
     console.log(email); 
     // AJAX - you would send 'token' to your server here. 
     console.log(token); 
     $.post('/testing', { 
      _token: formToken, 
      token: token, 
      email: email 
     }, function (data) { 
      console.log(data); 
     }) 
      // Assign handlers immediately after making the request, 
      .done(function (data, textStatus, jqXHR) { 
       //console.log(data); 
       $form.find('[type=submit]').html('Subscription Successful <i class="fa fa-check"></i>').prop('disabled', true); 
      }) 
      .fail(function (jqXHR, textStatus, errorThrown) { 
       $form.find('[type=submit]').html('There was a problem').removeClass('success').addClass('error'); 
       /* Show Stripe errors on the form */ 
       $form.find('.payment-errors').text('Try refreshing the page and trying again.'); 
       $form.find('.payment-errors').closest('.row').show(); 
      }); 
    } 
}); 

if (response.error) kartı reddedildi edilmelidir rağmen ateşler olmadı. Bu konuda neden yanlış yaptığımı anlayamıyorum.

Stripe belgelerinden reddedilmesi gereken tüm test kartı numaralarını denedim, ancak bunların hiçbiri hatalarla yanıt vermiyor.

Lütfen bana yardım edin. Zaman ayırdığın için teşekkürler.

+0

Peki neden şerit geri gönderiyor? Yanıt hata içermiyorsa nasıl bir şey yapabiliriz? – charlietfl

cevap

5

Stripe.js'u kullandığınızda, Stripe yalnızca kart ayrıntılarının doğru olduğunu ve bu noktada bankayla iletişim kurmadıklarını doğrulayacaktır. Bu, kart numarasının Luhn Check geçmesini, son kullanma tarihinin gelecekte geçerli bir tarih olduğunu ve CVC'nin 3 basamaklı (veya Amex için 4 basamaklı) bir sayı olduğunu garanti eder.

Bu durumda, tok_XXX belirteci başarıyla oluşturuldu ve sunucunuza gönderebilirsiniz. Kart, şarj etmeyi denediğinizde eklediğinizde sunucu tarafı reddedilir. Stripe, banka tarafından geçerli ve kabul edildiğinden emin olmak için kart üzerinde 0 $ veya 1 $ 1 yetkilendirme çalıştıracağı için bir müşteri oluşturduğunuzda da reddedilir.

+1

Bu, benim üzerimde bir yanlış anlaşılma oldu. Tabii ki kartlar reddedilmiyordu, çünkü Stripe.js sadece numaranın ve son kullanma tarihinin okunaklı olduğundan emin oluyor. Düşüşleri işleyen asıl Post şerit. Cevabınız için teşekkürler. –

İlgili konular