当前位置: 首页 > 知识库问答 >
问题:

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

濮阳宜
2023-03-14

我正在使用本教程: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来实现自动邮件的建议(nodemailer是一个选项,还是已弃用?)?

谢谢

共有1个答案

鲁鹏
2023-03-14

我不熟悉paypal api。但我认为有两件事需要记住。

>

  • 创建webhook以接收通知(处理状态更改很重要)

    在重定向endpoint捕获即时结果

    请仔细检查你的重定向endpoint已经从paypal收到了什么。

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

  •  类似资料:
    • 本文向大家介绍PayPal使用信用卡(节点)进行支付,包括了PayPal使用信用卡(节点)进行支付的使用技巧和注意事项,需要的朋友参考一下 示例 在此示例中,我们将研究如何使用PayPal保管库存储信用卡,然后参考存储的信用卡来为用户处理信用卡交易。 我们之所以要使用保管库,是因为我们不必在自己的服务器上存储敏感的信用卡信息。我们仅通过提供的保管库ID引用付款方式,这意味着我们不必自己存储信用卡就

    • 客户端部分运作良好,客户端付款,钱在卖家账户中。第二部分允许恢复数据,如交易号码,金额,客户地址,不起作用。使用Paypal提供的脚本。 这是一个文件索引。支付工程费用

    • 我正在使用Paypal SDK处理支付使用Paypal帐户或信用卡,我正在使用Paypal REST API从信用卡支付到Paypal应用帐户,然后使用Paypal adaptive SDK将钱从应用帐户转移到每个卖家的Paypal帐户,解决方案正在工作但问题是Paypal每笔交易取2.9%+0.3费用,有没有办法使用直接信用卡支付到Paypal帐户而不需要先转移钱yo应用帐户?

    • Paypal Express checkout integration能否包括一种不需要客户登录Paypal或创建新Paypal帐户的信用卡支付方式?

    • 没有PayPal账户或信用卡,是否可以使用Android软件开发工具包进行支付?我正在搜索从银行账户进行即时转账的功能,就像简单的网络结账一样。目前,我只能使用账户或信用卡登录。 PayPalAndroid SDK(1.2.6)中是否不支持银行帐户方法?

    • 我想给我的客户这个选择付款方式: 贝宝 信用卡 Paypal工作正常(我用的是PHP REST Api): 但是对于信用卡支付,我找不到任何接口?API示例已经需要信用卡信息,但我希望PayPal这样做?搜索时,我只找到NVP Express API,但此API已经弃用。