Best e-commerce developmnet company. Best mobile apps development company. Best website development company. Best design compnay.

Braintree Payment gateway Integration in MEAN Stack

Integrating the Braintree payment gateway in a MEAN (MongoDB, Express, Angular, Node.js) stack involves several steps. Below is the method to Integrate the Braintree Payment gateway in MEAN Stack while developing software.

The Braintree Node.js library with Braintree’s servers.
Prerequisite:
Install Braintree node package:
For more information or help with this step, see our API Credentials support article.

In Client Controller:

braintree.client.create({ authorization:'*******'//provide authorization code }, 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: 'sandbox', // or 'production' commit: true, payment: function (){ return paypalCheckoutInstance.createPayment({ flow:'checkout',//Required amount: $scope.totalAmt,//Required,Provide amount here currency:'USD',//Required enableShippingAddress:true, shippingAddressEditable:false, }); }, onAuthorize:function (data, actions){ return paypalCheckoutInstance.tokenizePayment(data) .then(function (payload){ // Submit`payload.nonce`to your server. $http.post('/api/braintree', {params: {braintreeData: data, payload: payload,amount: $scope.totalAmt }})//post to backend nodejs .success( function(success){ console.log(success); //Perform success operation here}) .error( function(error){ console.log(error);}); });}, onCancel: function (data){ console.log(data); },onError: function (err){ console.error('checkout.js error',err); }},'#paypal-button').then(function(){ // The PayPal button will be rendered in an html element with the id //`paypal-button`.This function will be called when the PayPal button //is set up and ready to be used. }); }); });

In the backend server controller

var braintree = require('braintree'); app.post("/api/braintree", function (req, res) { var payload = req.body.params.payload; var braintreeData = req.body.params.braintreeData; var totAmount = req.body.params.amount; var saleRequest = { amount: totAmount, paymentMethodNonce: payload.nonce, orderId: braintreeData.orderID, options: { submitForSettlement: true, paypal: { customField: "PayPal custom field", description: "Description for PayPal email receipt", },} }; var gateway = braintree.connect({ environment: braintree.Environment.Sandbox, // Sandbox Environment merchantId: "*********", // Provide merchant id publicKey: "*********", // Public key privateKey: "*********" // Private key }); gateway.transaction.sale(saleRequest, function (err, result) { if (err) { res.send("Error: " + err + ""); } else if (result.success) { // Perform any database operation here res.json(result); } else { res.send("Error: " + result.message + ""); } }); });

Run the Server

Make sure your Node.js server is running:

node server.js

Conclusion

You have now integrated the Braintree payment gateway into your MEAN stack application. This setup will allow you to handle payments using PayPal via Braintree. Make sure to handle any sensitive information securely and follow best practices for handling payment gateways in your production environment.

Recent Blogs


Posted

in

by

Tags:

To Know Us Better

Browse through our work.

Explore The Technology Used

Learn about the cutting-edge technology and techniques we use to create innovative software solutions.