Looks like the stripe secret is not being found because pk_test is part of the test api key.
May 26, 2018
12
Level 3
Stripe integration- console shows not defined error
Do you know why is appearing the error below using the default stripe code in the documentation?
jquery.min.js:2 Uncaught ReferenceError: pk_test_.... is not defined
at HTMLDocument.<anonymous> (registration:607)
Laravel RegistrationController charge():
public function charge(Request $request)
{
Stripe::setApiKey(config('services.stripe.secret'));
$source = $request->stripeToken;
Charge::create([
'currency' => 'eur',
'description' => 'Example charge',
'amount' => 2500,
'source' => $source,
]);
}
Html:
<script src="https://js.stripe.com/v3/"></script>
<form action="{{ route('registration.charge') }}" method="post" id="payment-form">
{{csrf_field()}}
<div class="form-row">
<label for="card-element">
Credit or debit card
</label>
<div id="card-element">
<!-- A Stripe Element will be inserted here. -->
</div>
<!-- Used to display form errors. -->
<div id="card-errors" role="alert"></div>
</div>
<button>Submit Payment</button>
</form>
Stripe js:
var stripe = Stripe({{config('services.stripe.key')}});
// Create an instance of Elements.
var elements = stripe.elements();
// Custom styling can be passed to options when creating an Element.
// (Note that this demo uses a wider set of styles than the guide below.)
var style = {
base: {
color: '#32325d',
lineHeight: '18px',
fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
fontSmoothing: 'antialiased',
fontSize: '16px',
'::placeholder': {
color: '#aab7c4'
}
},
invalid: {
color: '#fa755a',
iconColor: '#fa755a'
}
};
// Create an instance of the card Element.
var card = elements.create('card', {style: style});
// Add an instance of the card Element into the `card-element` <div>.
card.mount('#card-element');
// Handle real-time validation errors from the card Element.
card.addEventListener('change', function(event) {
var displayError = document.getElementById('card-errors');
if (event.error) {
displayError.textContent = event.error.message;
} else {
displayError.textContent = '';
}
});
// Handle form submission.
var form = document.getElementById('payment-form');
form.addEventListener('submit', function(event) {
event.preventDefault();
stripe.createToken(card).then(function(result) {
if (result.error) {
// Inform the user if there was an error.
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
} else {
// Send the token to your server.
stripeTokenHandler(result.token);
}
});
});
Level 67
notice where I put the single quotes....surrounding {{ }} so the output of config gets put INTO a string.
var stripe = Stripe('{{ config("pk_test") }}');
It's no different than putting things in quotes like on forms...
<input type="text" value="{{ $someObject->id }}">
1 like
Please or to participate in this conversation.