最近在做支付功能,微信支付准备工作之类的请参考官方说明,注意个人申请的测试号不支持,要申请企业号,还要商户号,开通支付权限,配置域名,JSSDK的权限问题,尽可能都开通吧!

官方地址可参考这里:接入准备工作

这里大概说一下前端要做的,项目先引入微信jssdk,安装依赖,

npm install weixin-js-sdk --save

main.js引入,设置成全局属性,也可以设置成局部属性,那当前页引入就好了,

import wx from 'weixin-js-sdk'
Vue.use(wx);
Vue.prototype.$wx = wx

先是微信登录授权,获取code传给后台,拿到用户信息,之前有写过,这里不做说明了====

大概说一下前端要做的事情,大概逻辑是:用户下单->选择微信支付->提交订单,

// 提交订单this.$http.get(`/xxx/xxx/xxx/pay/`).then(async res=> {console.log('返回的支付res:',res);console.log('是否微信浏览器====',isWechat);if(isWechat&&json.payType === 'WECHAT_PAY') {console.log('微信公众号内-微信支付===============');this.wechatPayFunction(res.pay) // 微信公众号支付}......})

这里后端返回的数据大概是这样:

记得要先通过后端接口获取到微信公众号的配置信息,返回的数据格式大概是这样:

微信配置成功之后,就可以使用微信自带的wx.chooseWXPay发起微信支付请求啦!

官方文档可参考这里:微信支付

上代码:

// 微信公众号内微信支付方法
async wechatPayFunction(payData) {let that = this;let url = window.location.href.split('#')[0];await this.$http.get(`/api/wechat/jssdk?url=`+url).then(res=>{console.log('微信config', res);// 配置config信息wx.config({debug: false,appId: res.appId, // 必填,公众号的唯一标识timestamp: res.timestamp, // 必填,生成签名的时间戳nonceStr: res.nonceStr, // 必填,生成签名的随机串signature: res.signature, // 必填,签名jsApiList: ['checkJsApi', 'chooseWXPay'] // 必填,需要使用的JS接口列表});// 通过ready接口处理成功验证wx.ready(function () {wx.checkJsApi({jsApiList: ['chooseWXPay'],success: function (res) {console.log('微信config检验成功',res);}});wx.chooseWXPay({timestamp: payData.timeStamp, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符nonceStr: payData.nonceStr, // 支付签名随机串,不长于 32 位package: payData.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)signType: payData.signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致paySign: payData.paySign, // 支付签名success: function (res) {  // 支付成功后的回调函数console.log('支付成功=============' + res)},fail: function (res) {console.log('支付失败===============' + res)}});});});

需要注意的问题:

1、调取微信支付前需要先获取到微信config信息,用后台返回的参数注入当前权限,才可以正常调用wx.chooseWXPay;

2、wx.chooseWXPay需要的参数通过支付接口再返回给前端,再发起微信支付请求;

3、注意一下参数大小写,核实后台接口返的和前端是否一致,因为本地不方便调试,每次都要发到服务器上,耽误了好久;还有因为也做了APP内的微信支付,一开始跟APP微信支付的后端接口返回参数搞错了,报错原因也查了很久,总之细心一点再细心一点,测试通过了还是很开心的,哈哈哈==;

vue前端实现微信支付-微信公众号JSSDK相关推荐

  1. 微信支付 php详解,微信支付之公众号支付详解

    本文主要和大家分享微信支付之公众号支付详解,随着微信支付的流行,大多产品都开发了自己的公众号.小程序等,产品的营销需要支付的支撑,最近做了个微信公号号支付,采坑无数,今天给大家分享一下,希望能帮助到大 ...

  2. php微信公众号支付实例教程,php微信支付之公众号支付功能

    这篇文章主要为大家详细介绍了php微信支付之公众号支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 网上的很多PHP微信扫码支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后 ...

  3. 服务商快速进件V1.6.3源码帮助客户开通微信支付账号公众号应用

    源码下载:服务商快速进件V1.6.3源码帮助客户开通微信支付账号公众号应用-小程序文档类资源-CSDN下载

  4. 微信支付、公众号支付、微信APP支付教程

    这两天有朋友问我微信支付的一些事情,我就抽了点时间整理了一下微信支付相关的一些东西,在这里分享给大家,希望能帮助大家少走弯路. 微信支付分为APP支付和公众号支付两大类,其中公众号支付又分为(公众号支 ...

  5. 微信支付(公众号支付)微信公众平台开发教程(5)

    简介 Senparc.Weixin SDK 是由盛派网络(Senparc)团队自主研发的针对微信各模块的 开发套件(C#SDK), 已全面支持微信公众号.微信支付.企业号.开放平台.JSSDK.摇一摇 ...

  6. php 公众号支付文档,【微信支付】公众号支付开发者文档

    在微信浏览器里面打开H5网页中执行JS调起支付.接口输入输出数据格式为JSON. 注意:WeixinJSBridge内置对象在其他浏览器中无效.列表中参数名区分大小,大小写错误签名验证会失败. get ...

  7. 微信支付之公众号支付

    经过近一周的敲代码,终于把公众号支付和H5支付实现完成并测试通过,特此分享一些流程,一方面自己记录另一方面给新入门的一点思路 [本文介绍普通商户的公众号支付] 一.基本信息和配置 公众号支付的前提是要 ...

  8. 微信支付,公众号支付(jsapi支付)如何配置支付授权目录

    开发微信支付的过程中,可能所有的流程都搞明白了,可能在配置公众号的支付授权目录时会遇到问题,会不大好理解. 如果支付授权目录没有设置正确,在请求JSAPI时,会提示"3当前页面的url未注册 ...

  9. java微信支付代码_Java微信支付之服务号支付代码示例

    Java微信支付之服务号支付实现,网上的java微信支付sdk和Demo基本上是水的,看着头疼所以我决心自己开始写Java微信支付之公众号支付,多的不说见下面源码,为了方便使用我分别用了两个Servl ...

  10. 微信公众号jssdk 分享/App原生应用接入分享开发及应用场景

    文章目录 前言 一.应用场景 二.Jssdk 接入准备工作 1.申请企业版微信公众号,并进行认证,并设置成为开发者 2.公众号配置 3.查看appid.设置密钥.并配置ip 白名单等 三.开发接入 1 ...

最新文章

  1. TypePerf收集服务器性能
  2. python 面向对象的篮球技巧训练实现
  3. linux 安装rmp服务,Linux LAMP服务的rpm包安装与配置
  4. 【51nod - 前缀异或】 对前缀和的理解
  5. 确认过眼神是先用上5G的人!中国联通将在7个城市开通5G试验网
  6. 区分PO,VO,DAO,BO,POJO
  7. Android BaseAdapter应用基础
  8. 微信小程序登录后跳转tabbar页面
  9. python办公自动化——提取pdf中的文字和表格
  10. 360wifi驱动linux驱动安装,360WiFi驱动安装使用教程,详细图文版
  11. Filebeat 轻量级日志采集器
  12. Python 数据获取(四)—— BeautifulSoup获取小说内容
  13. 用汇编语言编程的计算机
  14. 摄像头焦距与摄像范围的关系表
  15. 计算机机房年度重点工作,信息中心计算机的机房建设要求最新.doc
  16. python绘制曲面图_Python:有没有办法用Matplotlib绘制“部分”曲面图?
  17. npm安装electron报RequestError: socket hang up错误解决方法
  18. 以太网络(网口)变压器简介,功能,结构及典型的以太网网口电路
  19. python车牌识别系统开源代码_python+opencv实现车牌定位功能(实例代码)
  20. 全球名校AI课程库(2)| 吴恩达 · 机器学习专项课程『Machine Learning』

热门文章

  1. stm32命名规范总结
  2. scala成长之路(1)基本语法和数据类型
  3. 全网最新正则表达式总结- 简单 便捷 (适用于新手学习正则表达式,老手巩固学习正则表达式)
  4. 使用WinDbg搭建edk2 DEBUG环境
  5. 汽车行业场景化营销新方向:基于 WebGL 的网上虚拟车展
  6. 网页获取到的图片bease64编码,转化为二进制,进而保存为图片
  7. QQ Scheme跳转接口
  8. android仿多看阅读三屏滚动效果 -- 更改OnPageChangeListener
  9. 使用网络模拟器 Packet Tracer和交换机的端口配置与管理及Telnet远程登陆配置
  10. 信号量sem_wait()函数的学习