在前端开发中,我们常常需要使用第三方支付平台来完成付款操作。而 PayPal 作为全球最大的在线支付公司,是前端开发中常用的支付平台之一。在本篇文章中,我们将介绍如何使用 npm 包 paypal-rest-api 来完成 PayPal API 的调用。
安装和配置
首先,我们需要使用 npm 来安装 paypal-rest-api:
npm install paypal-rest-api
然后,我们需要在 PayPal 网站上注册一个应用程序,获取到 client_id
和 client_secret
,并在代码中引用它们:
-- -------------------- ---- ------- --- --- - --------------------------- --- --------- - ----------------- --- ------------- - --------------------- --- ------ - --- ------------------- ---------- ---------- -------------- -------------- ----- --------- -- ----------- ---
创建支付
要创建支付,我们需要使用 paypal.payment.create()
函数。以下是创建支付的示例代码:
-- -------------------- ---- ------- ----------------------- ------- ------- ------ - --------------- -------- -- -------------- - ----------- -------------------------------- ----------- ------------------------------ -- ------------- -- ------- - ------ ------- --------- ----- -- ------------ ------ -- -- -------- ----- -------- - -- ----- - ------------------- ----------------------- - ---- - --- ---- - - -- - - --------------------- ---- - -- --------------------- --- --------------- - ------------------------------------ - - - ---
该函数以对象形式接收一系列参数,首先是 intent
,表示支付的目的,可以是 sale
或 authorize
。然后是 payer
,表示付款人的信息。payment_method
表示付款方式,这里我们选择使用 PayPal。接着是 redirect_urls
,表示支付完成后要跳转的页面地址。其中,return_url
会在用户确认支付后跳转,cancel_url
则会在用户取消支付时跳转。
最后是 transactions
,表示支付的具体内容。其中,amount
表示支付的金额和货币种类,description
则表示购买的物品的描述。
创建支付后,PayPal 会返回一个 approval_url
,即用户确认支付的页面地址。我们使用 res.redirect()
将用户重定向到该地址。
执行支付
当用户确认支付后,会被重定向回我们指定的 return_url
。在这个页面中,我们需要使用 payment.execute()
函数来执行支付:
-- -------------------- ---- ------- ---------------------------------- - --------- ----------------- -- -------- ----- -------- - -- ----- - ------------------- ----------------------- - ---- - ------------------------- - ---
该函数接收两个参数,第一个是支付 ID,即 PayPal 在创建支付时生成的 ID。第二个是 payer_id
,表示付款人的 ID,从 URL 参数中获取。执行支付后,页面跳转至 success
页面,表示支付完成。
总结
到此,我们已经完成了使用 npm 包 paypal-rest-api 来完成 PayPal API 的调用。通过本文的学习,我们掌握了创建支付和执行支付的方法,并了解了如何获取支付 ID 和付款人的 ID。希望这篇文章对你的前端开发有所启发和帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cd981e8991b448e67e5