Я использую ключ токенизации вместо токена клиента. Я также определил это дважды, что я считаю плохой практикой. Но у меня возникают проблемы при передаче его из JavaScript в мой контроллер. Вот код:
// checkout.blade. php
<div id="dropin-container"></div>
{{-- BRAINTREE INTEGRATION --}}
<script src="https://js.braintreegateway.com/web/3.57.0/js/client.min.js"></script>
<script src="https://js.braintreegateway.com/web/dropin/1.21.0/js/dropin.min.js"></script>
<script>
var button = document.querySelector('#submit-payment');
braintree.dropin.create({
authorization: **********,
container: '#dropin-container'
}, function (createErr, instance) {
button.addEventListener('click', function () {
instance.requestPaymentMethod(function (requestPaymentMethodErr, payload) {
// submit payload.nonce to your server
});
});
});
</script>
// CheckoutController. php
$amount = Cart::total();
$nonce = **********;
$result = $gateway->transaction()->sale([
'amount' => $amount,
'paymentMethodNonce' => $nonce,
'options' => [
'submitForSettlement' => true
]
]);
Согласно документы , вам не нужно генерировать новый ключ после каждого сеанса. Итак, я не уверен, почему это будет неизвестно или истек срок действия. Есть предложения?
Заранее спасибо