繁体   English   中英

匹配交易总额的最简单方法?

[英]Easiest way to match transaction totals?

我正在尝试将 paypal 添加到我的网站。 我正在使用他们的 REST API,我想做的是让用户确定他们要存入的金额。 我可以在创建付款时获得总额,但如果没有复杂的 object 阵列系统,我不确定如何将其传递给执行部分。 有任何想法吗?

以下是我如何创建订单和执行订单的示例:

 router.post('/pay', (req, res) => { console.log(req.body.amount_to_deposit) var create_payment_json = { "intent": "sale", "payer": { "payment_method": "paypal" }, "redirect_urls": { "return_url": `${domain}success`, "cancel_url": `${domain}cancel` }, "transactions": [{ "custom": req.user.steamid, "item_list": { "items": [{ "name": "Deposit", "sku": "001", "price": "25", "currency": "USD", "quantity": 1 }] }, "amount": { "currency": "USD", "total": "25" }, "description": `Deposit UserID:${req.user.steamid}` }] }; paypal.payment.create(create_payment_json, function (error, payment) { if (error) { throw error; } else { for(let i = 0;i < payment.links.length;i++){ if(payment.links[i].rel === 'approval_url'){ res.redirect(payment.links[i].href); } } } }); }); router.get('/success', (req, res) => { const payerId = req.query.PayerID; const paymentId = req.query.paymentId; console.log(req.query) const execute_payment_json = { "payer_id": payerId, "transactions": [{ "amount": { "currency": "USD", "total": "25" } }] }; paypal.payment.execute(paymentId, execute_payment_json, function (error, payment) { if (error) { console.log(error.response); throw error; } else { if (payment.transactions[0].custom) { console.log(payment.transactions[0].custom) } res.send('Success'); } }); });

我可以使用 body params 获得用户想要支付的金额,但我如何将其获得成功路线,从而执行付款 json object?

您为什么使用旧的 v1 付款 REST API?

当前的 API 是 v2/checkout/orders, 在此处记录 捕获订单(大致相当于 v1 付款执行)不需要传递金额。

还有一个 node.js SDK 如果您发现它比管理 JSON 请求自己更容易,但任何一种方式都可以。


看起来您正在重定向到approval_url,这在当今是一种相当差的结帐体验。 使用此前端,使用 PayPal 按钮调用您的 2 条路线(一条用于创建订单,一条用于捕获订单),而不是重定向

不要使用任何重定向。 完全没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM