Wednesday, 7 June 2017

Paypal notify url - how to receive data back from paypal after payment with nodejs / using a simple paypal html form and no sdk?

I am trying to integrate paypal as a payment option. As I have done it (which works) is not using any paypal snd but just the simple html form. Ive been looking at it for a while and perhaps my question is stupid, but I don't understand what the difference is to just using the html form or (at paypal developer provided sdk)? Could someone explain please?

Also, I am trying to write a backend route with nodes/express. I set up the notify url for paypal which - as I understand- will return to me an object containing data (what was paid, the users paypal id etc.). so what I did was: 1. set up notify url which goes to the (angular state) /summary. - Im not sure if it perhaps should be the backend url and not the state. 2. then I have the fronted http call (as I also want to display a purchase summary to customer after he paid at paypal). 3. route in the backend to post to db.

I have been looking a lot a different documentation and tutorials but don't quite understand it and if anyone would have a few min explaining it to me, that would be amazing!! Thank you!

app.controller('summaryCtrl', function($scope, $http){
    return $http.post('api/order/summary', {???})
       .then(function(paypalObj){
           $scope.paypalObj=payppalObj;
       })
    // here I am not sure what Im sending/how do I know what the object Im getting back from paypal named)
})

router.post('/summary', function(req, res, next){
   console.log(req.body,res, 'paypal')
   User.findById(req.user.id)
   ....
   Order.create
   ...
})

html form:

<form method="POST" accept-charset="utf-8" action="https://www.sandbox.paypal.com/xxx/xxx" name="pp" id="pp">
        <input type="hidden" name="cmd" value="_xclick" class="validate">
        <input type="hidden" name="business" value="name@yahoo.com" required="required">
        <input type="hidden" name="currency_code" value="USD" required="required">
        <input type="hidden" name="quantity" value="" required="required">
        <input type="hidden" name="amount" value="" required="required">
        <input type="hidden" name="return" value="http://localhost:1337" required="required">
        <input type="hidden" name="cancel_return" value="http://localhost:1337/about" required="required">
        <input type="hidden" name="notify_url" value="http://localhost:1337/api/order/summary" required="required">
</form>

insight my angular controller (as Im using angular:

 $scope.paypalPay=function(){  
   $('#pp').get(0).submit() 
 };



via javascripting

No comments:

Post a Comment