转自IMWeb社区,作者:结一,原文链接
微信小程序为支付提供了一个 API,那就是 wx.requestPayment。打眼一看还是比较简单的,就是传入几个参数呗,但是实际要搞定这几个参数还是需要一些流程的。
参数说明
wx.requestPayment
的参数如下:
首先 nonceStr 和 package 这两个参数是由另外一个统一下单 API 返回的。而该接口需要提供小程序appid、商户号,用户openid等。
然后 paySign 签名涉及到签名算法,需要参数:appid、商户号,nonceStr、package、商户秘钥和一个时间戳。
支付流程总结
说了这么多,整个支付流程梳理起来就是如下:
1、准备好 appid、商户号及商户秘钥。
2、拿到 openid。
3、调用支付统一下单接口,拿到 nonceStr 和 package 这两个数据。
4、生成 paySign。
5、调用 wx.requestPayment
发起支付请求。
6、对成功或失败进行处理。
wx-js-utils
如果 2-4 都要自己动手的话,还是比较费劲的。这不微信又给我们提供了一些方便。这就是 wx-js-utils。它主要提供了如下四个基本能力:
- 小程序用户(提供了获取 openid 和 accessToken 的方法)
- 小程序模板消息
- 小程序码
- 微信支付(提供了统一下单、查询订单、撤销订单等一系列 API 接口)
具体使用请参考文档即可。
成功失败处理
- 无论成功还是失败,更新数据提示成功或失败
- 如果成功则调用查询订单 API,到微信支付侧查询是否存在该订单,并查询订单状态,看看是否已经支付成功了,确认成功后然后再向服务器提交成功信息,让服务更新订单状态为成功。
实战课程
说了这么多,其实还是要亲自实践下才好,这里推荐一门课程(免费的),可以跟着操作。