2014-12-16 2 views
0

У меня возникли проблемы с получением Stripe, чтобы работать на меня, и у вас есть множество примеров, но, похоже, он не может сделать это.STRIPE: Как получить эту форму заказа для работы

Я использую Stripes, простую форму выписки, и это определенно генерирует маркер полосы, потому что я могу видеть его в журналах полос. Затем я получаю форму execute.pp, которая получает маркер полосы в качестве переменной POST, и это def работает, потому что я могу повторить токен.

Проблема в том, что она ничего не делает и не вызывает никакой ошибки и не заряжает карту.

Код выглядит следующим образом: Checkout страница:

<form action="charge.php" method="POST"> 
    <script 
    src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
    data-key="test key" 
    data-amount="2000" 
    data-name="Demo Site" 
    data-description="2 widgets ($20.00)" 
    data-image="/128x128.png"> 
    </script> 
</form> 

Фактический PHP скрипт, который плата: charge.php

<?php 

require('Absolute Link to site /lib/Stripe.php'); 
// Set your secret key: remember to change this to your live secret key in production 
// See your keys here https://dashboard.stripe.com/account 
Stripe::setApiKey("test key"); 

// Get the credit card details submitted by the form 
$token = $_POST['stripeToken']; 
// Create the charge on Stripe's servers - this will charge the user's card 
try { 
    $charge = Stripe_Charge::create(array(
     "amount" => 1000, // amount in cents, again 
     "currency" => "aud", 
     "card" => $token, 
     "description" => "VIP Basic" 
    )); 
} catch(Stripe_CardError $e) { 
    // The card has been declined 
} 

?> 

Я по электронной почте поддержки нашивки, и они говорят, что charge.php код работает на их конец и проверить правильность вызова libs. В error_log нет никаких предупреждений и ничего.

У кого-нибудь есть идеи? Это должно быть самое простое в мире, и я разорву свои волосы на него и просто не вижу его.

+0

Вы пытались использовать на своем сервере что-то вроде Fiddler или Wireshark, чтобы узнать, действительно ли библиотека делает запрос REST серверам Stripe? Возможно, это даже не попытка его из-за какой-то странной проблемы с конфигурацией. – Matt

+0

Двойная проверка, что Абсолютная ссылка на сайт /lib/Stripe.php верна, если плата находится в той же папке, что и lib, она должна быть ./lib/Stripe.php –

ответ

0

Проблема может заключаться в том, что карта не принимает аудио, вы должны попробовать визу или мастер-карту. Если вы видите сгенерированный токен в панели инструментов, попробуйте использовать метод ajax ниже. include stripe.js и jquery.

<input type="text" id="card_number"> 
<input type="text" id="cvc"> 
<input type="text" id="ex_month"> 
<input type="text" id="ex_year"> 
<button id="paynow">Pay Now</button> 

$('#paynow').click(function(){ 
Stripe.setPublishableKey('pk_test_Bwg5tfiOULnNK8DvS60zJ2Sm'); 
    Stripe.card.createToken({ 
     number: $("#card_number").val(), 
     cvc: $("#cvc").val(), 
     exp_month: $("#ex_month")val(), 
     exp_year: $("#ex_year").val() 
    }, stripeResponseHandler); 
function stripeResponseHandler(status, error){ 
    if(response.error){ 
     alert(response.error.message); 
    } 
    else { 
    $.ajax({ 
    url: 'charge.php', 
    type:'POST', 
    data:{token:response.id}, 
    cache:false, 
    success: function(data){ 
      alert(data); 
    } 
    }); 
    } 
} 
}); 
0

Ваш код выглядит правильно и должен работать, так что проблема, скорее всего, что карта может быть отклонена, но вы не обрабатываете ошибку. Добавьте код в этой части:

} catch(Stripe_CardError $e) { 
    // The card has been declined 
} 

Echo на ошибку, и т.д., и вы, вероятно, обнаружите проблему.

Смежные вопросы