在前端开发中,使用第三方依赖库可以有效地提高工作效率。npm 是前端开发中最常用的包管理工具,其中的 mellat-checkout 包是一个用于封装伊朗 Mellat 银行 API 的 npm 包。
这篇文章将会详细介绍如何使用 mellat-checkout 做银行交易,并提供示例代码以及指导意义。
安装
使用 npm 作为包管理工具,可以通过以下命令安装 mellat-checkout 包。默认情况下,npm 会将包安装到项目的 node_modules
目录下。
npm install mellat-checkout --save
当然,使用本教程的示例代码时,也可以直接使用以下命令安装必备的包:
npm install express body-parser pug mellat-checkout --save
简介
mellat-checkout 包是一个提供 Mellat 银行 API 封装的 npm 包。它提供了创建付款请求、验证付款等基本功能。使用 mellat-checkout,可以快速方便地在前端应用中嵌入银行交易功能。
如下的代码开启了一个 express 服务器,并使用 mellat-checkout 创建了一个付款请求:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- -------------- - --------------------------- ----- ------ - ---------------- ----------- ----------- --------- ----------- ------------- ----------- ----------- ----------- --------- --------- ------------ ------------------------------- ------- ----- -------- --- ----------------- --- ----- --- - ---------- ------------- -------- ------- ---------------- ----------- --------------------------- ------------------------------- --------- ----- ---- ------------ ----- ---- -- - ------------------------------------ -- - ----- -------------- - ---------------------- ----- ----- - ------------- ------------------- - --------------- ----- --- --- --- ---------------- -- -- - ------------------- ------- -- ---- ------- ---
使用 mellatCheckout 函数创建一个 mellat 实例,并将所需参数传入。其中,TerminalId
、UserName
、UserPassword
、MerchantId
是 Mellat 银行 API 需要的必要参数。CallBackUrl
需要提供一个付款成功后的回调地址。Amount
和 OrderId
是可选参数。
在 express 服务器的 /
路由中,使用 mellat.createPayment()
创建一个付款请求。createPayment()
函数返回一个 Promise,其中包含 GatewayPageURL
和 RefId
两个属性。GatewayPageURL
是用于跳转到 Mellat 银行付款页面的 URL,RefId
则是当前付款请求的参照 ID。返回数据可以在 res.render(...)
中传入到视图引擎中。
下面的代码是回调地址路由,用于接收付款成功回调。使用 mellat.verifyPayment()
验证付款,并将 API 返回的结果发送给客户端。
app.post('/verify', (req, res) => { const RefId = req.body.RefId; const ResCode = req.body.ResCode; mellat.verifyPayment(RefId, ResCode).then((result) => { res.send(result); }); });
具体操作
使用 mellat-checkout 做银行交易可以分为以下几个步骤:
- 创建 mellat 实例
- 创建付款请求
- 用户跳转付款页面进行付款
- 验证付款结果
1. 创建 mellat 实例
使用 mellatCheckout(options) 函数创建一个 mellat 实例。options 包含以下必要参数:
- TerminalId: 终端 ID
- UserName: Mellat 账号用户名
- UserPassword: Mellat 账号密码
- MerchantId: 商户 ID
- CallBackUrl: 付款成功回调地址
options 还包含以下可选参数:
- Amount: 付款金额(默认值为 10000)
- OrderId: 订单 ID(默认为当前时间戳)
- TIMEZONE: 时区(默认为 'UTC+03:30')
-- -------------------- ---- ------- ----- -------------- - --------------------------- ----- ------ - ---------------- ----------- ----------- --------- ----------- ------------- ----------- ----------- ----------- --------- --------- ------------ ------------------------------- ------- ----- -------- --- ----------------- ---
2. 创建付款请求
使用 mellat.createPayment()
函数创建一个付款请求。此函数返回一个 Promise,Promise 的 resolve 参数包含付款请求的 GatewayPageURL
和参照 ID RefId
。
mellat.createPayment().then((result) => { const GatewayPageURL = result.GatewayPageURL; const RefId = result.RefId; // do something ... });
3. 用户跳转付款页面进行付款
使用前面获得的 GatewayPageURL
跳转到支付网站页面。此时用户可以进行付款。
4. 验证付款结果
在前面定义的回调 URL 上,使用 mellat.verifyPayment()
函数验证付款结果。此函数返回一个 Promise,Promise 的 resolve 参数包含 API 返回的数据。
app.post('/verify', (req, res) => { const RefId = req.body.RefId; const ResCode = req.body.ResCode; mellat.verifyPayment(RefId, ResCode).then((result) => { res.send(result); }); });
在回调 URL 中,需要获取 RefId
和 ResCode
两个参数,并调用 mellat.verifyPayment()
函数验证付款结果。如果 API 返回 0
,则说明付款成功。
总结
使用 mellat-checkout 包可以方便地在前端应用中扩展支付功能。本文章详细介绍了使用 mellat-checkout 包实现银行交易的步骤,并提供了示例代码。在实际使用中,需要注意商户 ID、终端 ID 等参数的准确性,以及付款结果的实时验证。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f3e1d8e776d08040ae1