2014-11-23 50 views
0

我有一個應用程序建立在Laravel 4並使用this package條紋令牌不流通

我下面this tutorial

這是我得到http://postimg.org/image/c4qwjysgp/

我的問題是$token錯誤是不正確通過或$token爲空。

我已經完成了var_dump($token); die();,除了白屏以外沒有任何東西,所以沒有數據通過。

這裏是視圖

@extends('layouts.main') 

@section('content') 

<h1>Your Order</h1> 

<h2>{{ $download->name }}</h2> 

<p>&pound;{{ ($download->price/100) }}</p> 

<form action="" method="POST" id="payment-form" role="form"> 

<input type="hidden" name="did" value="{{ $download->id }}" /> 

<div class="payment-errors alert alert-danger" style="display:none;"></div> 

<div class="form-group"> 
<label> 
    <span>Card Number</span> 
    <input type="text" size="20" data-stripe="number" class="form-control input-lg" /> 
</label> 
</div> 

<div class="form-group"> 
<label> 
    <span>CVC</span> 
    <input type="text" size="4" data-stripe="cvc" class="form-control input-lg" /> 
</label> 
</div> 

<div class="form-group"> 
<label> 
    <span>Expires</span>  
</label> 
<div class="row"> 
    <div class="col-lg-1 col-md-1 col-sm-2 col-xs-3"> 
    <input type="text" size="2" data-stripe="exp-month" class="input-lg" placeholder="MM" /> 
    </div> 
    <div class="col-lg-1 col-md-1 col-sm-2 col-xs-3"> 
    <input type="text" size="4" data-stripe="exp-year" class="input-lg" placeholder="YYYY" /> 
    </div> 
</div> 
</div> 

<div class="form-group"> 
<button type="submit" class="btn btn-primary btn-lg">Submit Payment</button> 
</div> 
</form> 

@stop 

這裏是路線

Route::post('/buy/{id}', function($id) 
{ 
Stripe::setApiKey(Config::get('laravel-stripe::stripe.api_key')); 

$download = Download::find($id); 
//stripeToken is form name, injected into form by js 
$token = Input::get('stripeToken'); 
//var_dump($token); 


// Charge the card 
try { 
    $charge = Stripe_Charge::create(array(
     "amount" => $download->price, 
     "currency" => "gbp", 
     "card" => $token, 
     "description" => 'Order: ' . $download->name) 
    ); 


    // If we get this far, we've charged the user successfully 
    Session::put('purchased_download_id', $download->id); 
    return Redirect::to('confirmed'); 

    } catch(Stripe_CardError $e) { 
    // Payment failed 
    return Redirect::to('buy/'.$id)->with('message', 'Your payment has failed.');  
} 

}); 

這裏是JS

$(function() { 

console.log('setting up pay form'); 

$('#payment-form').submit(function(e) { 

    var $form = $(this); 

    $form.find('.payment-errors').hide(); 

    $form.find('button').prop('disabled', true); 

    Stripe.createToken($form, stripeResponseHandler); 

    return false; 
}); 

}); 

function stripeResponseHandler(status, response) { 

var $form = $('#payment-form'); 

if (response.error) {  
    $form.find('.payment-errors').text(response.error.message).show(); 
    $form.find('button').prop('disabled', false); 
} else { 

var token = response.id;  

    $form.append($('<input type="hidden" name="stripeToken" />').val(token)); 

    $form.get(0).submit(); 

} 

} 

以下是在封裝的stripe.php

<?php 

return array(
'api_key' => 'sk_test_Izn8gXUKMzGxfMAbdylSTUGO', 

'publishable_key' => 'pk_test_t84KN2uCFxZGCXXZAjAvplKG' 
); 

回答

0

我想通了這個問題。在外部JavaScript文件的源代碼中,「/」在相對路徑的開頭處缺失。這就是爲什麼主頁的JavaScript文件呈現正常,但/購買頁面不呈現JavaScript文件。

0

似乎Config :: get可能是錯誤的。

它必須這樣寫。

Stripe::setApiKey(Config::get('stripe.api_key'));