// Create a client. var payload; braintree.client.create({ authorization: 'eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiIzMzVjNzhhNTFlMDM1MGM5OGEyM2QxMjdlOTM2NGFhNzg5OWYwMGIyNjQyNTFlOTJiMzg5Y2JkNmQ1ZTNhNmRhfGNyZWF0ZWRfYXQ9MjAxOS0xMC0wNFQwODoxMjoyMC4wOTY2MjMxNzYrMDAwMFx1MDAyNm1lcmNoYW50X2FjY291bnRfaWQ9c2ltcGx5YmVhcmluZ3NHQlBcdTAwMjZtZXJjaGFudF9pZD05N21remc4a2p3NXgzNzd0XHUwMDI2cHVibGljX2tleT03d2t5dnE2dGh6dGNoa3loIiwiY29uZmlnVXJsIjoiaHR0cHM6Ly9hcGkuYnJhaW50cmVlZ2F0ZXdheS5jb206NDQzL21lcmNoYW50cy85N21remc4a2p3NXgzNzd0L2NsaWVudF9hcGkvdjEvY29uZmlndXJhdGlvbiIsImdyYXBoUUwiOnsidXJsIjoiaHR0cHM6Ly9wYXltZW50cy5icmFpbnRyZWUtYXBpLmNvbS9ncmFwaHFsIiwiZGF0ZSI6IjIwMTgtMDUtMDgifSwiY2hhbGxlbmdlcyI6W10sImVudmlyb25tZW50IjoicHJvZHVjdGlvbiIsImNsaWVudEFwaVVybCI6Imh0dHBzOi8vYXBpLmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvOTdta3pnOGtqdzV4Mzc3dC9jbGllbnRfYXBpIiwiYXNzZXRzVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhdXRoVXJsIjoiaHR0cHM6Ly9hdXRoLnZlbm1vLmNvbSIsImFuYWx5dGljcyI6eyJ1cmwiOiJodHRwczovL2NsaWVudC1hbmFseXRpY3MuYnJhaW50cmVlZ2F0ZXdheS5jb20vOTdta3pnOGtqdzV4Mzc3dCJ9LCJ0aHJlZURTZWN1cmVFbmFibGVkIjp0cnVlLCJwYXlwYWxFbmFibGVkIjp0cnVlLCJwYXlwYWwiOnsiZGlzcGxheU5hbWUiOiJTaW1wbHkgQmVhcmluZ3MiLCJjbGllbnRJZCI6IkFjdmZ2aHVBdVRjX2h5SjlVbHFMZ2pfTURjT2RDSDBMb3Uya2xUVkY5V3FraDZsX0NXY1phTXkxc29XQUJaYkNMSkw3eXdSV0lyd0J2RU1BIiwicHJpdmFjeVVybCI6Imh0dHBzOi8vc2ltcGx5YmVhcmluZ3MuY28udWsvc2hvcC9pbmZvcm1hdGlvbi5waHAjcHJpdmFjeSIsInVzZXJBZ3JlZW1lbnRVcmwiOiJodHRwczovL3NpbXBseWJlYXJpbmdzLmNvLnVrL3Nob3AvaW5mb3JtYXRpb24ucGhwI3RhbmRjcyIsImJhc2VVcmwiOiJodHRwczovL2Fzc2V0cy5icmFpbnRyZWVnYXRld2F5LmNvbSIsImFzc2V0c1VybCI6Imh0dHBzOi8vY2hlY2tvdXQucGF5cGFsLmNvbSIsImRpcmVjdEJhc2VVcmwiOm51bGwsImFsbG93SHR0cCI6ZmFsc2UsImVudmlyb25tZW50Tm9OZXR3b3JrIjpmYWxzZSwiZW52aXJvbm1lbnQiOiJsaXZlIiwidW52ZXR0ZWRNZXJjaGFudCI6ZmFsc2UsImJyYWludHJlZUNsaWVudElkIjoiQVJLcllSRGgzQUdYRHpXN3NPXzNiU2txLVUxQzdIR191V05DLXo1N0xqWVNETlVPU2FPdElhOXE2VnBXIiwiYmlsbGluZ0FncmVlbWVudHNFbmFibGVkIjp0cnVlLCJtZXJjaGFudEFjY291bnRJZCI6InNpbXBseWJlYXJpbmdzR0JQIiwiY3VycmVuY3lJc29Db2RlIjoiR0JQIn0sIm1lcmNoYW50SWQiOiI5N21remc4a2p3NXgzNzd0IiwidmVubW8iOiJvZmYiLCJtZXJjaGFudEFjY291bnRJZCI6InNpbXBseWJlYXJpbmdzR0JQIn0=', }, function (clientErr, clientInstance) { // Stop if there was a problem creating the client. // This could happen if there is a network error or if the authorization // is invalid. if (clientErr) { console.error('Error creating client:', clientErr); return; } // Create a PayPal Checkout component. braintree.paypalCheckout.create({ client: clientInstance }, function (paypalCheckoutErr, paypalCheckoutInstance) { // Stop if there was a problem creating PayPal Checkout. // This could happen if there was a network error or if it's incorrectly // configured. if (paypalCheckoutErr) { console.error('Error creating PayPal Checkout:', paypalCheckoutErr); return; } // Set up PayPal with the checkout.js library paypal.Button.render({ env: 'production', // sandbox | production commit: false, style: { label: 'pay', // checkout | credit | pay | buynow | generic size: 'medium', // small | medium | large | responsive shape: 'rect', // pill | rect color: 'gold' // gold | blue | silver | black }, payment: function () { return paypalCheckoutInstance.createPayment({ // Your PayPal options here. For available options, see // http://braintree.github.io/braintree-web/current/PayPalCheckout.html#createPayment flow: 'checkout', amount: '0.00', currency: 'GBP', offerCredit: false, intent: 'sale', landingPageType: 'login', enableShippingAddress: true }); }, onAuthorize: function (data, actions) { paypalCheckoutInstance.tokenizePayment(data, function (err, payload) { var xhttp = new XMLHttpRequest(); xhttp.open("POST", "https://simplybearings.co.uk/shop/ajax/paypal_express_checkout.php"); xhttp.onreadystatechange = function() { if (xhttp.readyState > 3 && xhttp.status == 200){ window.location.replace('https://simplybearings.co.uk/shop/checkout_paypal_process.php?payment_method_nonce=' + payload.nonce); return; } else if (xhttp.status == 503) { $('#error_msg').html('There is currently a problem processing your payment with PayPal. Please try again or contact us if the problem persists.'); $('#error_div').show(); $('#error_msg').addClass('alert-danger alert'); } }; xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send('data=' + encodeURIComponent(JSON.stringify(payload))); }); }, onCancel: function (data) { console.log('checkout.js payment cancelled', JSON.stringify(data, 0, 2)); }, onError: function (err) { console.error('checkout.js error', err); } }, '#paypal-cart-button').then(function (nonce) { // Called when PayPal button is ready }); }); });