什么是 passport-zarinpal?
Passport-zarinpal 是一个 Passport 认证策略,用于与 ZarinPal 的付款 API 进行集成。通过使用 passport-zarinpal,您可以轻松地在 Node.js 应用程序中添加 ZarinPal 的付款功能。passport-zarinpal 充分利用 passport 的构建和认证功能。
如何安装 passport-zarinpal
使用 npm 保证你安装的 passport-zarinpal 是最新版本
$ npm install passport-zarinpal
如何使用 passport-zarinpal
首先,我们需要添加 passport-zarinpal 的认证策略。应用程序最好存储在本地路径中(例如,"./config/passport.js")。
-- -------------------- ---- ------- --- ---------------- - -------------------------------------- ---------------- ------------------ ----------- ------------------------ ------------ ------------------- ------------ ------- -- -------- -------- ---------- ------------ ----- - -- ---- -- ----- --- ------- -- --------- -- --- ------ --- -- ----------- ------- --- -- ------- --- ------- -- --- ------ ---- ------ -- -------- ---- --- ------- -- --------- -- -- ---- ------ --- ------ -------- --- ---- -- --- ----------- ---- - ---
在上面的代码中,我们在 app.js
中启动了 express 应用程序。我们还包括了 passport 模块,并将 passport 初始化为应用程序。接下来,我们定义了 ZarinPalStrategy,该策略使用 ZarinPal 的付款 API 进行集成。通过使用 ZarinPalStrategy,您可以控制策略的行为,并将其集成到认证系统中。
付款 API
在需要用户进行付款的地方,我们可以使用以下代码:
router.get('/pay', function (req, res) { req.session.amount = req.query.amount || 100; req.session.description = 'Pay for the Service'; req.session.paymentID = 'payment-id-' + Math.random().toString(36).substring(7); res.redirect('/payment'); });
上面的代码是一个典型的处理程序,可以在应用程序中进行路由。如果用户请求 /pay,将会生成一个新的支付请求并将其存储在会话中。然后,用户将被重定向到付款网页。
用户在付款页面进行付款后,将跳转到您指定的回调 URL,该 URL 将用于在应用程序中处理付款。因此,您需要识别一个回调 URL,在此 URL 上处理来自 ZarinPal 的响应。
在回调 URL 处理程序中,可以使用以下代码来处理付款请求:
router.get('/payment/success', function (req, res, next) { passport.authenticate('zarinpal', { amount: req.session.amount, paymentID: req.session.paymentID, callbackURL: '/payment/success' })(req, res, next); });
这将启动 ZarinPalStrategy,并附加任何必需的参数,以处理支付请求。回调函数 authenticate
,在处理程序返回的过程中,将完成支付或引导用户重新选择付款方法。
示例代码
-- -------------------- ---- ------- --- ------- - ------------------- --- -------- - -------------------- --- ---------------- - -------------------------------------- --- ------ - ----------------- -- -------- -------------- ---------------- ------------------ ----------- ------------------------ ------------ ------------------- ------------ ------- -- -------- -------- ---------- ------------ ----- - -- ---- -- ----- --- ------- -- --------- -- --- ------ --- -- ----------- ------- --- -- ------- --- ------- -- --- ------ ---- ------ -- -------- ---- --- ------- -- --------- -- -- ---- ------ --- ------ -------- --- ---- -- --- ----------- ---- - --- -- ----- -------- ------------------ -------- ----- ---- - ------------------ - ---------------- -- ---- ----------------------- - ---- --- --- --------- --------------------- - ------------- - ---------------------------------------- ------------------------- --- ---------------------- -------- ----- ---- - --------------------- - ------- ------------------- ------------ ------------------------ ---------- --------------------- --- --- ------------------------------ -------- ----- ---- ----- - --------------------------------- - ------- ------------------- ---------- ---------------------- ------------ ------------------ ------- ---- ------ --- -------------- - -------
结论
以上是 passport-zarinpal 的使用教程。使用本教程,您可以轻松地将 ZarinPal 的支付 API 集成到您的 Node.js 应用程序中。希望这篇文章对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005725a81e8991b448e878c