# wechat **Repository Path**: zcj041125/wechat ## Basic Information - **Project Name**: wechat - **Description**: 微信工具包 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-20 - **Last Updated**: 2024-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zcj工具类 介绍:这是一个由我自主研发的一个工具类,里面的东西会很多很杂,供大家使用各个场景 使用: ## 1-在out/artifacts/wechat_jar文件夹下找wechat.jar ![找wechat.jar](src/main/resources/static/image-20240420173437135.png) ![找wechat.jar](src/main/resources/static/image-20240420173534554.png) ## 2-将jar包下载到本地(后期会上线maven中央仓库) ![image-20240420173722394](src/main/resources/static/image-20240420173722394.png) ## 3-在命令行窗口中输入以下命令(使用maven引入) 首先,打开本地cmd窗口,按照一定规则将本地的jar包进行安装。规则如下: 如,我需要安装一个本地的OrgPublic.jar文件,一共**提供4个参数**; ```java com.zcj-----------------(参数二) wechat-----------(参数三) 0.0.1-SNAPSHOT------------(参数四) ``` **参数1**:本地jar包的真实路径,例如我的是: C:\Users\Administrator\Desktop\OrgPublic.jar **参数2**:groupId 这个值,可以根据自己的需求来决定 **参数3**:artifactId 这个值,建议和jar同名 **参数4**:版本号,这个不用说了,根据需求自己来决定。 拼接参数后如下所示: ```cmd mvn install:install-file -Dfile="C:\Users\Administrator\Desktop\OrgPublic.jar" -DgroupId=myjar -DartifactId=OrgPublic -Dversion=1.0 -Dpackaging=jar ``` mvn install:install-file -Dfile="参数1" -DgroupId=参数2 -DartifactId=参数3 -Dversion=参数4 -Dpackaging=jar (*注意有的中间有空格,建议复制我的然后进行替换*) 将上面的拼接数据在CMD窗口运行即可,运行结果如下: ![img](https://pic4.zhimg.com/80/v2-19339528575cd72fa0893a86d0987ed3_720w.webp) 此时,这个jar包就已经下载到本地仓库了,再回到IDE中查看pom文件 ![image-20240420174224817](src/main/resources/static/image-20240420174224817.png) 很顺利的将依赖加入到了maven仓库。 当然不用maven引入也是可以哒 ## 版本更新: ### 2024-04-20:投放微信一键登录工具类,可以直接使用,只需要传入appid和appsecret即可 #### 1-项目引入后,首先创建类,将appid和appsecret设置上值,然后通过WxController调用wxLogin方法即可,返回值为openid ![image-20240420174646227](src/main/resources/static/image-20240420174646227.png) ![image-20240420174700126](src/main/resources/static/image-20240420174700126.png) ### 2024-04-22:投放微信支付工具类,可以直接使用,传入相对应的参数 ![image-20240422173940231](src/main/resources/static/image-20240422173940231.png) 除了name以外其他的全部传入 #### 小程序端 ```javascript //访问后端接口 UserService.payment({openid:this.userinfo.openId,totalFee:monet*100}).then((res)=>{ console.log(res); console.log("---------------------"); const payments = res; //支付请求 但是此处有大坑,一定要注意, //签名 var parSigns = that.MixedencryMD5(res.data,res.data.nonce_str,res.data.timeStamp); console.log(parSigns); //微信支付 wx.requestPayment({ appId:res.data.appid, timeStamp: res.data.timeStamp, nonceStr: res.data.nonce_str, package: "prepay_id="+res.data.prepay_id, signType: "MD5", paySign: parSigns, success (res) { //用户支付成功 console.log("用户支付成功",res); }, fail (res) { //用户支付失败 if (res.errMsg.includes('cancel')) { // 用户取消了支付操作 console.log('用户取消了支付操作'); } else { // 其他支付失败情况 console.log('支付失败:', res.errMsg); } } }) }) ``` #### pc端 1.安装依赖 **`npm install weixin-jsapi`** 2.在需要调起支付的页面引用 **`import wx from “weixin-js-sdk”;`** 3.调起支付-需要的参数由后端返回,一般是下完单返回参数然后调起支付 ```javascript wx.config({ debug: false, // 这里一般在测试阶段先用ture,等打包给后台的时候就改回false, appId: res.data.appId, // 必填,公众号的唯一标识 timestamp: res.data.timeStamp, // 必填,生成签名的时间戳 nonceStr: res.data.nonceStr, // 必填,生成签名的随机串 signature: res.data.paySign, // 必填,签名 jsApiList: ['chooseWXPay', 'checkJsApi'] // 必填,需要使用的JS接口列表 }) wx.ready(() => { // wx.checkJsApi({ // jsApiList: ['chooseWXPay'], // success:function(res){}, // fail:function(res){}}) wx.chooseWXPay({ timestamp: res.data.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 nonceStr: res.data.nonceStr, // 支付签名随机串,不长于 32 位 package: res.data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) signType: 'SHA1', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' paySign: res.data.paySign, // 支付签名 success: function(payRes) { // 支付成功后的回调函数 }, cancel: function(payRes) { // that.$message.error('取消支付') }, fail: function(payRes) { // that.$message.error('支付失败') } }) }) ``` 上面两者都会直接出现微信支付二维码