2014-11-23 5 views
0

내가 응용 프로그램 Laravel 4에 내장 한을 전달하고 this package스트라이프 토큰 내가 <a href="http://www.sitepoint.com/selling-downloads-stripe-laravel/" rel="nofollow">this tutorial</a></p> <p>을 다음입니다

를 사용하지 않는 이것은 내가 내 문제가 $token입니다 http://postimg.org/image/c4qwjysgp/

점점 오전 오류가 제대로되지 않은 것입니다 지나가거나 $token이 비어 있습니다.

나는 이미 var_dump($token); die();을 완료했으며 흰색 화면 만 표시하므로 데이터가 전달되지 않습니다. 여기

여기
$(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 인 JS 경로 여기

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.');  
} 

}); 

뷰 여기

@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 

<?php 

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

'publishable_key' => 'pk_test_t84KN2uCFxZGCXXZAjAvplKG' 
); 
,174,

답변

0

나는이 문제를 파악했다. 외부 자바 스크립트 파일의 소스에서 상대 경로의 시작 부분에 "/"가 누락되었습니다. 그래서 홈페이지의 javascript 파일은 잘 렌더링되었지만/buy 페이지는 자바 스크립트 파일을 렌더링하지 않았습니다.

0

Config :: get과 같은 것 같습니다.

이렇게 작성해야합니다.

Stripe::setApiKey(Config::get('stripe.api_key')); 
관련 문제