微信网页开发配置整理

article/2025/9/19 12:39:34

真是人越大记忆越差,断断续续做了几个微信小程序和微信h5项目,然鹅小程序的开发流程有些都忘了,最近刚做完一个微信h5网页开发的项目,所以赶紧记录下开发中需要注意的点,给自己往后回顾,同时也给第一次接入微信开发的同学一点参考。

本项目包含一个微信h5网页,一个pc端控制系统。微信端采用的是uniapp开发,一次开发多端部署的框架;pc端控制系统采用vue-cli开发;两个前端公用一个springboot项目;支付方式采用的jsApi支付(微信内置浏览器发起支付)。

首先开发微信h5系统,公众号是必须的,如果没有就注册一个;如果程序涉及到支付功能,则还需要一个微信商户账号;添加了通过ICP备案验证域名的服务器一个。

先放上微信网页开发官方文档。

目录

一、获取公众号必要信息及配置

​​

二、微信商户配置(JSAPI支付v3)


一、获取公众号必要信息及配置,JS-SDK接入

公众号所需的信息为AppID和AppSecret,在微信公众号中->基本配置->公众号开发信息。

配置IP白名单就在获取appID和AppSecret的页面,配置JS接口安全域名和网页授权域名如下:

​ 

配置IP白名单的IP就是你要请求获取access_token的后端部署的那个服务器的IP,在引入微信网页开发工具包JS-SDK时,需要在后端先通过http的get请求去获取access_token,然后用获取的access_token再去通过http的get请求获取jsapi_ticket,将返回参数中的“ticket”变量用来生成JS-SDK权限认证签名,在生成其余的配置信息返回前端。前端调用方式如下:

wx.config({debug: false, appId: config.appId, // 必填,公众号的唯一标识timestamp: config.timeStamp, // 必填,生成签名的时间戳nonceStr: config.nonceStr, // 必填,生成签名的随机串signature: config.paySign,// 必填,签名jsApiList: [		 					'showMenuItems','hideAllNonBaseMenuItem','updateAppMessageShareData','updateTimelineShareData'] // 必填,需要使用的JS接口列表
})
wx.ready(()=>{		//调用jsApiList中你需要使用的微信JS接口wx.updateAppMessageShareData({title: title, // 分享标题desc: desc, // 分享描述link: selfUrl, // 分享链接,该链接域名或路径必须与当前页面对应的imagUrl:imgUrl});
})		

JS接口安全域名也就是上述你需要调用微信JS接口的网页部署的服务器的域名;网页授权域名就是网页授权链接中回掉地址的域名。

二、微信商户支付接入(JSAPI支付v3)

先跟着官方文档微信支付开发者文档走就行,我是用的是jsapiV3最新的支付方式,链接文档放的也是该版本的文档,相比较之前的操作感觉有些地方要简便一些。我简单总结一下支付流程:

  1. 后端调用下单接口,生成预支付订单获取prepay_id;
  2. 后端生成前端发起支付接口需要的配置信息;
  3. 微信前端利用后端返回的配置调起支付;
  4. 后端暴露出的支付通知接口接收微信支付通知并解析返回的数据;

一般来说我们在调用下单接口时,要将接口参数中的商户订单号(out_trade_no)先存入自己数据库中;支付成功后支付结果通知返回给我们的参数解析后会有我们发起预支付订单时的商户订单号(out_trade_no),以此来判断用户支付成功。注:微信调用我们系统接口是以https方式请求,所以后端得配置https请求。

jsapiV3支付可能有的朋友在使用微信官方的wechatpay-apache-httpclient客户端时有些问题,简单说就是要生成微信官方的加密httpclient,然后就和Apche的httpclient一样直接去请求下单、查单、退单等接口。

微信支付开发者文档接入前准备操作完成后可以获取到的信息有mchId、apiv3Key、apiclient_cert.pem、apiclient_key.pem、apiclient_cert.p12。此时还需要商户API证书的证书序列号,通过openssl x509 -in apiclient_cert.pem -noout -serial 命令进行获取。

此时我们拥有的生成官方客户端的数据就集齐了。

  • 商户号——mchId,
  • v3密钥——apiV3Key
  • 商户API证书序列号——merchantSerialNumber
  • 证书密钥文件——apiclient_key.pem
    /*** 获取商户密钥字符串* @return*/public PrivateKey getPrivateKey()  {//获取私钥文件流InputStream in = this.getClass().getClassLoader().getResourceAsStream("data" + File.separator + "apiclient_key.pem");return PemUtil.loadPrivateKey(in);}/*** 初始化加密请求客户端* @return* @throws Exception*/public HttpClient initClient() throws Exception {//获取私钥PrivateKey merchantPrivateKey = getPrivateKey();// 获取证书管理器实例CertificatesManager certificatesManager = CertificatesManager.getInstance();// 向证书管理器增加需要自动更新平台证书的商户信息certificatesManager.putMerchant(mchId, new WechatPay2Credentials(mchId,new PrivateKeySigner(merchantSerialNumber, merchantPrivateKey)), apiV3Key.getBytes(StandardCharsets.UTF_8));// ... 若有多个商户号,可继续调用putMerchant添加商户信息// 从证书管理器中获取verifierVerifier verifier = certificatesManager.getVerifier(mchId);// 初始化httpClientHttpClient httpClient = WechatPayHttpClientBuilder.create().withMerchant(mchId, merchantSerialNumber, merchantPrivateKey).withValidator(new WechatPay2Validator(verifier)).build();return httpClient;}

然后就可以用initClient()生成的加密客户端去请求各种支付接口了。最后别忘了引入

<dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId>wechatpay-apache-httpclient</artifactId><version>0.4.2</version>
</dependency>

感觉自己写的也比较乱,所以把相关的官方文档链接都给大家引入了,希望大家还是认真看看官方文档。

欢迎大家有问题在评论区讨论,博主看到都会尽量解答。后面有机会再把项目整理一下开源给大家参考。


http://chatgpt.dhexx.cn/article/wXV8R4w7.shtml

相关文章

微信网页开发调试的一些方法

1. 微信开发者工具调试 微信开发者工具下载 不过多介绍, 下载安装, 就能开始小程序开发和公众号网页开发. 2. 微信内自带调试 微信内打开网页 http://debugx5.qq.com (仅支持Android微信) 打开下面两项&#xff0c;就可以调试了 3. 使用vConsole插件 1. 下载vConsole插件…

前端对接微信公众号网页开发流程,前期配置

微信公众号网页开发&#xff0c;其实就是我们开发的h5网页需要放到微信浏览器环境中使用&#xff0c;但是需要对接公众号授权&#xff0c;授权之后可以获取到用户的个人信息&#xff0c;以及可以使用公众号提供的一些API,如&#xff1a;图片上传、图片预览、获取位置信息、微信…

微信网页开发(3)--微信网页授权

点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. 什么是授权2. 两种授权方式3. 网页授权access_token和普通access_token4. 网页授权流程5. 网页授权代码开发5.1 项目搭建5.2 修改配置文件5.3 开发启动类5.4 开发公众号配置类5.5 开发…

微信网页开发:微信内h5使用wx-open-launch-weapp打开小程序,微信内h5使用wx-open-launch-app打开App的方案

需求场景&#xff1a; 当我们需要使用在微信客户端打开的h5页面&#xff0c;在页面上打开微信小程序或者唤起App时&#xff0c;我们需要使用微信js-sdk提供的开放标签能力。这其中&#xff1a;使用wx-open-launch-weapp标签打开微信小程序&#xff1b;使用wx-open-launch-app跳…

算法分析与设计 二分查找

算法分析与设计 二分查找 二分查找的基本概念 ​ 二分查找是一种在有序数组中查找某一特定元素的查找算法。这种查找方法将查找的时间复杂度从原本的线性时间提升到了对数时间范围&#xff0c;大大缩短了搜索时间。 ​ 二分查找的基本思想是&#xff1a;在查找过程从数组的中…

C语言二分查找

我们常常需要对数据进行查找&#xff0c;修改&#xff0c;查找数据有许多方法&#xff0c;我们先看看最简单的顺序查找 int main() {int i, k 0;scanf("%d", &k);int arr[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int sz sizeof(arr) / sizeof(arr[0]);for (i…

二分查找【详解】

本期介绍&#x1f356; 主要介绍&#xff1a;二分查找的简单思路&#xff0c;为什么必须在有序的前提下才能使用二分查找&#xff0c;该怎么用C程序来实现二分查找&#xff0c;二分查找的局限性&#x1f440;。 目录&#x1f356; 简单思路前提条件编写程序总结 简单思路&…

二分答案

二分答案 总所周知&#xff0c;二分法查找一个数的时间复杂度为O(log n)&#xff0c;所以在int范围内找一个数最多只需要30余次&#xff0c;在longlong范围内最多也只需要60余次。因此&#xff0c;我们可以利用二分这一优势查找答案。即&#xff0c;每次二分后判断该数是不是满…

初探二分算法

又来算法了~~~~ &#x1f603;&#x1f603;&#x1f606;&#x1f606;&#x1f603;&#x1f603;&#x1f603;&#x1f606;&#x1f606;&#x1f606;&#x1f440;&#x1f440;&#x1f606;&#x1f914; 什么是二分算法&#xff1f; 在计算机科学中&#xff0c;二分…

二分(数学背景,边界问题,二分查找,二分答案)

二分法的数学背景 目的 关于二分法的目的&#xff0c;这里引用同济大学数学系出版的《高等数学》第七版上册中关于二分法的相关内容。&#xff08;文段内容多&#xff0c;要有一点耐心~&#xff09; 在科学技术问题中&#xff0c;经常会遇到 求解高次代数方程或其他类型的方程的…

二分模板介绍

以一个典型例题来介绍二分法的两个通用模板&#xff0c;熟练掌握这两个模板可以解决绝大部分二分的问题。 例题&#xff1a;ACWing 789.数的范围 给定一个按照升序排列的长度为n的整数数组&#xff0c;以及q个查询。 对于每个查询&#xff0c;返回一个元素k的起始位置和终止…

二分算法详细解析

二分 有单调性一定可以二分&#xff0c;可以二分不一定有单调性二分的本质是边界不是单调性(单调一定可以二分&#xff0c;不单调的有的也可以二分) 本质&#xff1a;在一个区间上&#xff0c;找到某种性质&#xff0c;每次可以将区间一分为二&#xff08;存在边界&#xff09;…

一篇文章带你搞懂二分

一篇文章教你搞懂二分 二分整数二分实数域上二分二分查找二分答案 二分 到底什么是二分呢&#xff1f;二分二分就是一分为二。简单来说二分就是在有序序列中&#xff0c;通过不断的二分&#xff0c;进而不断地缩小范围去寻找满足我们条件的解。这只是对二分一个狭义上的理解&a…

深入字节版atop: 线上系统的性能监控实践

背景 atop 是一款开源的单机性能监测工具&#xff0c;支持实时观测的同时、也支持读取历史文件排查问题。另外一个优点是除提供 CPU、MEM、DISK 等全局指标外&#xff0c;还提供进程、线程级别的各项指标监控数据。鉴于 atop 的这些优点&#xff0c;字节跳动基于社区的 atop 进…

atop备忘

atop 安装 sudo apt install atop atop 参数说明 监控界面字段说明 ATOP列&#xff1a;该列显示了主机名、信息采样日期和时间点 PRC列&#xff1a;该列显示进程整体运行情况 sys、usr字段分别指示进程在内核态和用户态的运行时间 #proc字段指示进程总数 #zombie字段指示僵…

atop linux,每天学一个 Linux 命令(117):atop

命令简介 atop 命令是一款监控 Linux 系统资源与进程的工具&#xff0c;非内部命令&#xff0c;需要安装。[rootcentos7 ~]# atop -bash: atop: command not found [rootcentos7 ~]# yum install atop -y #Debian && Ubuntu apt-get install atop #Fedora dnf install …

linux 系统性能 检测 命令 atop

atop 主要可以 监测 cpu,内存&#xff0c;硬盘&#xff0c;网络性能&#xff0c;以及 实时读写 日志。 基本用法 1.查看 atop , 实时刷新 按 a ,退出 按q 2.保存日志 atop -w log.txt 3.查看 输出日志 atop -r log.txt &#xff0c; 按 t 查看 下一个样本的性能数据 &a…

Atop使用场景

问题&#xff1a; 1、线上容器环境pod报错无法创建本地线程&#xff0c;如下图所示&#xff1a; 2、日志中出现报错信息 “fork&#xff1a;Cannot allocate memory”。如下图所示&#xff1a; 可能原因 1、内存不够 2、可能是进程数超限导致。系统内部的总进程数达到了 p…

atop工具使用

atop是linux系统下一款监控系统资源与进程的工具。atop以一定的频率记录系统的运行状态,通过它可以了解系统今生前世。atop采集系统资源「cpu、mem、disk、net」的使用情况及所有进程使用系统资源的情况,定期采集相关数据保存日志文件。可以通过atop.daily文件调整数据采集的…

atop安装和使用

atop就是一款用于监控Linux系统资源与进程的工具&#xff0c;它以一定的频率记录系统的运行状态&#xff0c;所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况&#xff0c;并能以日志文件的方式保存在磁盘中。atop是一款开源软件&#xff0c;目前最新版…