【发布时间】:2022-06-17 04:45:10
【问题描述】:
Cartalyst\Stripe\Exception\MissingParameterException 您不能多次使用 Stripe 令牌:tok_1LBOP6HwG6zssijf0D93dHRk。
我不知道是否应该更改条带键,因为我从 Udemy 购买了课程,所以我认为讲师已经多次使用该键。我需要有关如何集成自己的密钥集成的指导以避免此错误。 这是我的 checkout.blade.php 代码
表格从这里开始。
<hr>
Total Price:${{$cart->totalPrice}}
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">Checkout</div>
<div class="card-body">
<form action="/charge" method="post" id="payment-form">@csrf
<div class="form-group">
<label>Name</label>
<input type="text" name="name" id="name" class="form-control" required="" value="{{auth()->user()->name}}" readonly="">
</div>
<div class="form-group">
<label>Adress</label>
<input type="text" name="address" id="address" class="form-control" required="">
</div>
<div class="form-group">
<label>City</label>
<input type="text" name="city" id="city" class="form-control" required="">
</div>
<div class="form-group">
<label>State</label>
<input type="text" name="state" id="state" class="form-control" required="">
</div>
<div class="form-group">
<label>Postal code</label>
<input type="text" name="postalcode" id="postalcode" class="form-control" required="">
</div>
<div class="">
<input type="hidden" name="amount" value="{{$amount}}">
<div class="">
<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 class="btn btn-primary mt-4" type="submit">Submit Payment</button>
</form>
</div>
</div>
</div>
</div>
</div>
我的脚本代码,不知道是API key还是java脚本的问题
<script src="https://js.stripe.com/v3/"></script>
<script type="text/javascript">
// Create a Stripe client.
window.onload=function(){
var stripe = Stripe('pk_test_no5YZwniXP4Qw4l5HKzJi3fS');
var elements = stripe.elements();
var style = {
base: {
color: '#32325d',
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');
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();
var options={
name:document.getElementById('name').value,
address_line1:document.getElementById('address').value,
address_city:document.getElementById('city').value,
address_state:document.getElementById('state').value,
address_zip:document.getElementById('postalcode').value
}
stripe.createToken(card,options).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);
}
});
});
// Submit the form with the token ID.
function stripeTokenHandler(token) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'stripeToken');
hiddenInput.setAttribute('value', token.id);
form.appendChild(hiddenInput);
// Submit the form
form.submit();
}
}
</script>
【问题讨论】:
-
它是你不能多次使用的令牌,而不是密钥
-
那么我该怎么做呢?这是我第一次尝试这个。
标签: php laravel stripe-payments