NPM包 hapi-paypal 的使用教程

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

hapi-paypal 是一个 Node.js 服务器框架 Hapi.js 中用于 PayPal API 集成的插件,为开发者提供了一个简化的方式来接收 PayPal 支付,这里是 hapi-paypal 的使用教程。

安装

在你的项目目录下,使用 npm 安装 hapi-paypal:

--- ------- ----------- ------

连接 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.paymentIdrequest.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


猜你喜欢

  • npm 包 tcpigeon 使用教程

    前言 tcpigeon 是一款基于 Node.js 的 npm 包,其功能是快速搭建 TCP 服务器。在前端开发中,我们有时需要自己搭建一些后台服务用于测试,或者是搭建一些简单的 TCP 服务器与客户...

    3 年前
  • npm 包 kickthemout 使用教程

    在进行网络安全测试、渗透测试等活动时,我们经常需要进行 ARP 欺骗攻击,将其他设备从网络中踢出,从而实现网络的控制和管理。这时候,一个名为 kickthemout 的 npm 包就可以为我们提供便利...

    3 年前
  • npm 包 lxx-tools 使用教程

    随着前端技术的发展,npm 成为了一个不可或缺的工具。npm 提供了海量的第三方前端包,方便了开发者快速搭建自己的项目。而 lxx-tools 这个 npm 包,则更是对前端工程化的一次尝试。

    3 年前
  • npm 包 pushstreamjs 使用教程

    在现代网页开发中,实时通信成为了一个重要的话题。而 pushstreamjs 是一个基于 WebSocket 的轻巧、易用、高性能的 JavaScript 库,可以让开发者轻松实现 Web 端的实时推...

    3 年前
  • npm 包 node-sass-webpack-plugin 使用教程

    在前端开发中,我们经常需要使用 Sass 来编写样式,而且为了方便开发和打包,我们通常会将 Sass 文件打包为 CSS 文件。在 webpack 中,我们可以使用 node-sass-webpack...

    3 年前
  • npm 包 generator-andari-app 使用教程

    前言 在前端开发中,我们常常需要创建一个新的项目,而每次手动创建项目是一件很繁琐的工作,为了避免重复劳动,npm 提供了一个名为 generator-andari-app 的包,使我们能够快速创建一个...

    3 年前
  • npm 包 simple-aes 使用教程

    在前端开发中,数据安全性是非常重要的一部分。而加密算法也是非常重要的一部分。在 Node.js 中,我们可以安装使用 simple-aes 包来实现 AES 对称加密算法。

    3 年前
  • npm 包 @aercolino/object-paths 使用教程

    @aercolino/object-paths 是一个非常实用的 npm 包,它提供了一种方便快捷的方法来访问和修改 JavaScript 对象的嵌套属性。在前端开发中常常需要操作复杂的对象,使用这...

    3 年前
  • npm 包 @document/mmp.core 使用教程

    在前端开发中,npm 包是开发者们最常用的工具之一。其中,@document/mmp.core 是一个非常优秀的 npm 包,它是一款轻量级的 JavaScript 库,可以让你在一键生成 API 文...

    3 年前
  • npm 包 eslint-plugin-more-naming-conventions 使用教程

    在 JavaScript 项目中,编写符合命名规范的代码是非常重要的。命名规范可以使你的代码更易于阅读和维护,以及提高协作能力。而 eslint-plugin-more-naming-conventi...

    3 年前
  • npm 包 method-routes 使用教程

    作为一名前端开发人员,我们经常需要在项目中使用路由管理工具。在 Node.js 环境下,我们可以使用 npm 包来实现路由功能。在本篇文章中,我们将介绍如何使用 npm 包 method-routes...

    3 年前
  • npm 包 neutrino-preset-elm 使用教程

    前言 在前端开发中,我们经常需要使用 JavaScript 框架和库来增强 Web 应用的功能和交互性。甚至我们会使用像 React、Vue、Angular 这样的框架来构建复杂的应用程序。

    3 年前
  • npm 包 hyperchoo 使用教程

    简介 hyperchoo 是一个轻量级的前端应用框架,它基于 choo 和 hyperscript。它允许您快速构建可扩展,易于维护的单页应用程序。它具有很好的文档和生态,可以帮助您快速入门和开发应用...

    3 年前
  • npm 包 react-persist 使用教程

    前言 在现代的前端开发中,我们经常需要使用各种第三方的 npm 包来加速开发,提高效率。而 react-persist 是一款非常实用的 npm 包,它能够让 React 的组件持久化存储数据。

    3 年前
  • npm 包 semver-colors 使用教程

    Semver-colors 是一个 npm 包,它提供了一种简单的方式来格式化和显示各种语言中的版本号,使其易于阅读和理解。 在前端开发中,我们经常需要处理版本号,无论是在开发还是在部署中。

    3 年前
  • npm 包 squalor 使用教程

    在前端开发中,我们经常需要使用数据库操作。为了能够提高开发效率,我们可以使用一些好用的 npm 包库来帮助我们简化操作。其中,squalor 是一款非常实用的 npm 包,本文将为大家介绍如何使用它。

    3 年前
  • npm 包 shard-uo-plugin-common 使用教程

    介绍 shard-uo-plugin-common 是一个 Node.js 包,旨在简化前端开发中的重复性操作,提高代码复用性和可维护性。其包括一系列常用的插件和工具库,支持模块化引入和按需调用,同时...

    3 年前
  • npm 包 requirejs-toggle 使用教程

    在前端开发中,使用 require.js 来实现模块化开发已经成为了主流。requirejs-toggle 是一个可以帮助我们简化 require.js 模块开发的 npm 包。

    3 年前
  • npm 包 spust 使用教程

    什么是 spust? Spust 是一个可以帮助前端开发者进行实用的 HTTP/HTTPS 接口调试和 mock 的工具集。它可以通过简单配置来启动一个本地的代理服务器,拦截浏览器发送的请求,并返回 ...

    3 年前
  • npm 包 eventsource-polyfill-bugfixes 使用教程

    在使用 JavaScript 编写前端应用时,有时我们需要从服务端获取实时数据并在页面上进行展示。以往,我们可能会在前端代码中使用原生浏览器的 EventSource 对象进行实时通信,但这种方法在一...

    3 年前

相关推荐

    暂无文章