六年代码两茫茫,不思量,自难忘【前端|微信公众号支付(JSAPI)】
6年资深前端主管一枚,只分享技术干货,项目实战分享
关注博主不迷路~
文章目录
- JSAPI支付简介
- 应用场景
- 支付的对接
-
- 准备工作
- 开发流程
-
- 必填参数
- 预支付统一下单
- 公众号授权
- 获取用户信息
- 微信支付(JSAPI)
JSAPI支付简介 JSAPI支付是指商户通过调用微信支付提供的JSAPI接口,在支付场景中调起微信支付模块完成收款。
应用场景
- 线下场所:调用接口生成二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付。
- 公众号场景:用户在微信公众账号内进入商家公众号,打开某个主页面,完成支付。
- PC网站场景:在网站中展示二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付。
- 微信公众已认证的服务号,并且需要开通微信支付该能(必须是企业才有资格申请哦)
- 微信商户平台账号
*这两个账号一个都不能少
必填参数
appid
APPIDmch_id
商户IDnonce_str
随机字符串sign
签名body
所支付的名称out_trade_no
自己所提供的订单号,需要唯一total_fee
支付金额spbill_create_ip
IP地址notify_url
回调地址trade_type
支付类型openid
支付人的微信公众号对应的唯一标识参数的获取呢主要是用其中的WXPayUtil工具类中的一些方法
好了开始咱们的取值之旅了~
预支付统一下单

文章图片

文章图片
公众号授权

文章图片
获取用户信息

文章图片
前台页面配置(主要为获取授权)在此处主要为打开首页跳转微信的授权地址 然后微信回调到页面且携带参数code
如:
当前访问地址:http://aaa.com
微信回调地址:http://aaa.com?code=xxxxx
getAuth(code)为请求后台的auth方法来获取token和用户的openid 然后再调用getUserInfo()来请求后台info接口来获取用户信息,将用户的信息存入缓存

文章图片
微信支付(JSAPI)
接下来才是重点,也就是支付的实现,下图的onPay()函数执行了两步操作
- 调用wxPay()函数,带参为本地缓存的用户openid(也就是调用后台预支付的API接口)生成预支付订单
- 然后调用微信内置浏览器的组件WeixinJSBridge.invoke()将刚才后台返回的数据参数带入来发起支付
如图所示:
文章图片
发起支付

文章图片
完成!
?原 创 不 易 , 还 希 望 各 位 支 持
点 赞 , 你 的 认 可 是 我 创 作 的 动 力 !
?? 收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 !
?? 评 论 , 你 的 意 见 是 我 进 步 的 财 富 !
推荐阅读
- 面试指导|一天时间迅速准备前端面试|JS基础--变量类型和计算
- 微信小程序|uniapp打包微信小程序识别二维码
- 前端|uniapp开发微信小程序的坑
- HTML5|猿创征文 | 基于H5实现跨文档通信 & websocket
- Java|从头搭建一个SpringBoot项目,至少应该引入哪些配置()
- java|Springboot+mybatis搭建的第一个项目
- springBoot|springBoot之如何搭建第一个简单的springBoot项目(Hello World)
- Java微服务框架|从零搭建一个SpringBoot项目
- Spring|带你搭一下你的第一个SpringBoot项目