why package braintree/braintree_php not displays form paypal

Viewed 38

I created an ecommerce site by laravel, I want to integrate payment by paypal, I installed package braintree/braintree_php by command compose require braintree/braintree_php, I add the form paypal by code javascript but it is not displayed. I have already integrated paypal in another website, in the same way but now I can not. I do not know if the version changes or what.

CheckoutController.php

$gateway = new \Braintree\Gateway([
            'environment' => config('services.braintree.environment'),
            'merchantId' => config('services.braintree.merchantId'),
            'publicKey' => config('services.braintree.publicKey'),
            'privateKey' => config('services.braintree.privateKey')
        ]);
        try {
            $paypalToken = $gateway->ClientToken()->generate();
        } catch (\Exception $e) {
            $paypalToken = null;
        }

checkout.blade.php

    <form method="post" id="paypal-payment-form" action="{{ route('checkout.paypal') }}">
 @csrf
<section> 
 <div class="bt-drop-in-wrapper">
    <div id="bt-dropin"></div>
 </div>
</section>
 <input id="nonce" name="payment_method_nonce" type="hidden" />
 <button class="button-primary" type="submit"><span>Pay with PayPal</span></button>
</form>

<script src="https://js.braintreegateway.com/web/dropin/1.13.0/js/dropin.min.js"></script>
 <script>
 var form = document.querySelector('#paypal-payment-form');
            var client_token = "{{ $paypalToken }}";

            braintree.dropin.create({
              authorization: client_token,
              selector: '#bt-dropin',
              paypal: {
                flow: 'vault'
              }
            }, function (createErr, instance) {
              if (createErr) {
                console.log('Create Error', createErr);
                return;
              }

              // remove credit card option
              var elem = document.querySelector('.braintree-option__card');
              elem.parentNode.removeChild(elem);

              form.addEventListener('submit', function (event) {
                event.preventDefault();

                instance.requestPaymentMethod(function (err, payload) {
                  if (err) {
                    console.log('Request Payment Method Error', err);
                    return;
                  }

                  // Add the nonce to the form and submit
                  document.querySelector('#nonce').value = payload.nonce;
                  form.submit();
                });
              });
            });


    </script>
0 Answers
Related