节点和PayPal:付款后检索用户信息

问题描述 投票:1回答:1

我正在使用本教程:https://www.nodejsera.com/paypal-payment-integration-using-nodejs-part2.html

它实现PayPal的方式是:

// start payment process 
app.get('/buy' , ( req , res ) => {
    // create payment object 
    var payment = {
            "intent": "authorize",
    "payer": {
        "payment_method": "paypal"
    },
    "redirect_urls": {
        "return_url": "http://127.0.0.1:3000/success",
        "cancel_url": "http://127.0.0.1:3000/err"
    },
    "transactions": [{
        "amount": {
            "total": 39.00,
            "currency": "USD"
        },
        "description": " a book on mean stack "
    }]
    }   

    // call the create Pay method 
    createPay( payment ) 
        .then( ( transaction ) => {
            var id = transaction.id; 
            var links = transaction.links;
            var counter = links.length; 
            while( counter -- ) {
                if ( links[counter].method == 'REDIRECT') {
                    // redirect to paypal where user approves the transaction 
                    return res.redirect( links[counter].href )
                }
            }
        })
        .catch( ( err ) => { 
            console.log( err ); 
            res.redirect('/err');
        });
}); 
// helper functions 
var createPay = ( payment ) => {
    return new Promise( ( resolve , reject ) => {
        paypal.payment.create( payment , function( err , payment ) {
         if ( err ) {
             reject(err); 
         }
        else {
            resolve(payment); 
        }
        }); 
    });
}       

然后相应地重定向用户:

app.get('/success' , (req ,res ) => {
    res.redirect('/success.html');
    console.log(req.query);
})

// error page
app.get('/err' , (req , res) => {
    console.log(req.query);
    res.redirect('/err.html');
})

我正在使用Sandbox,虚拟支付是成功的。我想在付款完成后向买家发送电子邮件(在这种情况下,我自己)。如何检索该信息(如果付款正常,用户电子邮件和姓名等)?

并且,有关在node.js中使用的库实现自动邮件的任何建议(节点编辑器是一个选项,还是不推荐使用?)?

谢谢

node.js paypal
1个回答
0
投票

我不熟悉paypal api。但我认为有两点需要牢记。

  • 创建一个webhook来接收通知(对于处理状态更改很重要)
  • 在重定向端点捕获立即结果

请仔细检查您的重定向端点已从PayPal收到的内容。

app.get('/success' , (req ,res ) => {
    console.log(req.query); // should include payer id
    res.redirect('/success.html');
})
© www.soinside.com 2019 - 2024. All rights reserved.