hapi-paypal 是一个 Node.js 服务器框架 Hapi.js 中用于 PayPal API 集成的插件,为开发者提供了一个简化的方式来接收 PayPal 支付,这里是 hapi-paypal 的使用教程。
安装
在你的项目目录下,使用 npm 安装 hapi-paypal:
npm install hapi-paypal --save
连接 PayPal
在使用 hapi-paypal 前,你需要先 注册一个 PayPal 账号,并 创建一个普通的应用 以获取需要的 API 凭据,包括客户端 ID 和密钥等,你可以 查看这个教程 来了解如何创建。
接下来,在 Hapi.js 的路由配置中,添加 hapi-paypal 的插件,并指明连接 PayPal 的凭据信息:
-- -------------------- ---- ------- ----------------- --------- ----------------------- -------- - ---- - ------- ---------- ------------ --------------------- ---------------- ------------------------ -- -------- - --------- ------- -------- - ----------------- -------- -- ---------------- - ------------- ------------------------ ------------- ----------------------- -- --------------- -- ------------ - -------- -- ------- ------- ------ ------ -------- ------- ----------- ------ ----------- - -- -- --------- - ----------- ------ -------- ------ -- -------------- -------- ------------ -- - - -- ------------- - -- ----- - ----- ---- - -------------- ------- ------- ----- -------------- -------- ----------------- ------ - --- ------ - -------------------------------------- ------------------------------ ------------- -------- - -- ----- - ------ ----------- - --- ----------- - ------------------------------- ------ ---------------------------- --- -- ------- - --------- - -------- ------------------- ------ ------------------------ ------------ ------------------------ ----- ----------------------- -- - - --- ------------------- ------- --- - - ----------------- ---
创建支付
用户开始支付时,将调用 /paypal/pay
路径,该路由函数将创建一个新的 PayPal 支付请求,并将用户带至 PayPal 官网进行支付。一旦支付完成,用户将被重定向至 redirect_urls.return_url
以完成支付。
-- -------------------- ---- ------- -------------- ------- ------- ----- -------------- -------- ----------------- ------ - --- ------ - -------------------------------------- ------------------------------ ------------- -------- - -- ----- - ------ ----------- - --- ----------- - ------------------------------- ------ ---------------------------- --- -- -------- - --------- - -------- ------------------- ------ ------------------------ ------------ ------------------------ ----- ----------------------- -- - - ---
在请求中,你需要传入三个字段:
price
:支付的金额description
:支付的描述name
:支付的名称
这些字段将作为购买的商品信息去提交创建支付请求。
处理 PayPal 支付
当 PayPal 完成支付转账之后,会把一些支付信息返回给你的服务器,你需要在用户通过 PayPal 支付之后处理该信息。hapi-paypal 提供了 execute
方法来完成对返回的支付信息的处理,具体示例代码如下:
-- -------------------- ---- ------- -------------- ------- ------ ----- ------------------ -------- ----------------- ------ - ----------------------------- --------------- --- ------ - -------------------------------------- --- --------- - ------------------------ --- ------- - ---------------------- ------------------------- -------- ------------- -------- - -- ----- - ------ ----------- - ----------------------- --------- ------ --------------- --- - ---
在上面的代码中,我们定义了路由 /paypal/success
,用来从 PayPal 返回的支付信息中处理支付结果。支付信息将以 request.query.paymentId
和 request.query.PayerID
的形式作为路由请求的查询参数被传递到服务器。
一旦处理完成,你可以在控制台中使用 console.log('payment:', payment);
来输出处理完成的支付结果,或将结果返回给用户。
对产品的定制化处理
如果你的产品需要更多的属性,那么你可以通过配置 transactions
来实现。比如,你可以在单个支付请求中支持多个商品:
-- -------------------- ---- ------- --------------- -- --------- - ----------- ------ -------- -------- ---------- - ------ ------- ----------- ------- ----------- ------- - -- -------------- ----- -- --- ------- ----------- -------------- ------------ - -------- -- ------- ----- ---- --- ------ ------------ -------- -------- ----------- ------ ----------- - -- - ------- ----- ---- --- ------ ------------ -------- -------- ----------- ------ ----------- - -- - --
你可以将 items
数组的每个元素视为单个商品,然后在数组中为每个商品提供详细信息。更多的信息可以参见 PayPal API 文档。
结语
以上内容是 hapi-paypal 的使用教程,它为开发者们提供了一个简单而快捷的方法来接收 PayPal 支付。使用 hapi-paypal,你可以更加方便地在 Hapi.js 中集成 PayPal API,来应对支付的各种使用场景。 如果你想知道更多的信息,可以参考 NPM 上提供的这个 GitHub 库。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562cc81e8991b448e014b