npm 包 wechat-pay-ymlinks 使用教程

阅读时长 4 分钟读完

本文介绍如何使用 npm 包 wechat-pay-ymlinks 来快速实现微信支付的功能。这个包封装了微信支付的相关 API,使得在前端中实现微信支付变得更加容易。

安装

首先,你需要在你的项目中安装 wechat-pay-ymlinks。你可以使用 npm 进行安装:

或者,你也可以使用 yarn:

使用

使用 wechat-pay-ymlinks,你需要先在微信商户平台上申请支付接口的权限。你将获得以下信息:

  • APPID:你的微信公众号的 appid。
  • MCHID:你的微信支付商户号。
  • APIKEY:API 密钥,用于签名和验证参数。
  • NOTIFYURL:微信支付成功后通知的地址。

申请了上述信息之后,你就可以开始使用 wechat-pay-ymlinks 了。

初始化

在初始化中,将 appidmch_idapi_key 以及 notify_url 配置成你的信息即可。

下单

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

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

这里使用了 uniOrder 方法来创建订单。uniOrder 方法接收一个对象作为参数,此对象包含以下参数:

  • body:商品描述。
  • out_trade_no:商户订单号。
  • total_fee:订单总金额,单位为分。
  • spbill_create_ip:终端IP。
  • trade_type:交易类型,此处填入 JSAPI
  • openid:用户标识。

返回结果是一个包含 appidmch_idprepay_id 等信息的对象,这些信息将在之后的支付流程中用到。

支付

在下单成功之后,我们将获得 prepay_id。使用 uniPay 方法来发起支付。uniPay 方法接收一个对象作为参数,此对象包含以下参数:

  • prepay_id:预支付交易会话标识。

在发起支付之后,将打开微信支付页面,用户将在此页面上完成支付过程。

校验

在用户完成支付后,微信会向你配置的 NOTIFYURL 发送通知。在你的服务器中,你需要接收到这个通知,然后根据通知中的信息处理订单,并返回给微信一个通知结果。在这里,我们需要先对微信的通知进行签名校验,可以使用 verifySign 方法。

verifySign 方法接收一个对象,此对象为微信发送的通知解析后的 JSON 对象。使用此方法可以根据 api_key 对通知中的参数进行签名校验,并返回校验结果。

示例代码

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

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

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

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

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

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

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

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

总结

使用 npm 包 wechat-pay-ymlinks,我们可以很方便地在前端中实现微信支付的功能。这篇文章提供了详细的使用指南,希望对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d2d81e8991b448dae7e

纠错
反馈