在前端开发过程中,支付集成是一个重要的环节。ejuunionpay 是一个方便易用的 npm 包,它可以在前端集成银联支付功能。本教程将详细介绍 ejuunionpay 的使用方法。
环境要求
使用 ejuunionpay,你需要准备以下环境:
Node.js 运行环境
npm 包管理器
一个支持银联支付的商户号
如果你还没有准备好以上环境,请先完成准备工作。
安装 ejuunionpay
使用 npm 包管理器安装 ejuunionpay:
npm install --save ejuunionpay
使用 ejuunionpay
- 引入 ejuunionpay
在你的项目中引入 ejuunionpay:
import UnionPay from 'ejuunionpay';
- 初始化 ejuunionpay
指定商户号,初始化 ejuunionpay:
const unionPay = new UnionPay({ merId: '商户号', });
这里需要替换 '商户号'
为你的商户号。
- 发起支付请求
使用 unionPay.pay
方法发起支付请求:
unionPay.pay({ orderId: '订单号', txnAmt: 1234, }).then(result => { console.log(result); }).catch(error => { console.error(error); });
这里需要替换 '订单号'
为你的订单号,1234
为订单金额(单位为分)。
- 处理支付回调
在支付完成后,银联会将支付结果通知到你指定的回调地址。你需要在回调地址搭建一个接口,接收并处理支付结果。
router.post('/unionpay/callback', async (req, res) => { const { signature, ...params } = req.body; const valid = unionPay.verify(params, signature); if (!valid) { return res.status(403).end(); } // 此处处理支付结果 });
这里使用 Express 框架来搭建回调接口,你需要替换 /unionpay/callback
为你自己的回调地址。
在支付结果通知的 POST 请求中,请求体中会包含所有支付结果参数,以及一个 signature
参数。你需要验证 signature
参数的值,以防止支付结果被篡改。
可以使用 unionPay.verify
方法来验证 signature
值的合法性。如果验证失败,则说明支付结果被篡改,应返回 403 状态码告知银联支付系统。
示例代码
整个支付流程的示例代码如下:
-- -------------------- ---- ------- ------ -------- ---- -------------- ------ ------- ---- ---------- ----- --- - ---------- ----- -------- - --- ---------- ------ ------ --- ------------------------ ------------------------------ ----- ----- ---- -- - ----- - ---------- --------- - - --------- ----- ----- - ----------------------- ----------- -- -------- - ------ ---------------------- - -- ------ --- ------------------------- ----- ----- ---- -- - ----- - -------- ------ - - --------- ----- ------ - ----- -------------- -------- ------- ------- --- ----------------- --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
结语
本教程介绍了 ejuunionpay 的使用方法,并提供了完整的示例代码。希望能对你在前端支付集成的工作中提供帮助。如果你有任何疑问或建议,请在评论区留言。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055cb681e8991b448da38d