目录 一.登录会话密钥 session_key 有效性 二.解决登录session_key 的问题 案例:解决session_key 过期问题,发送个人信息后台解密 后端解密信息,存入数据库 mysql数据库存表情设置 三.后端,如何解析wx.getUserInfor中的用户信息. 用户信息官方文档 数据加密官方文档 一.登录会话密钥 session_key 有效性 https://developers.weixin.qq.com/miniprogram/dev/framework/open-a…
这几天在做一个微信小程序注册登录页面的时候碰到一个问题,就是使用wx.request api的时候success中返回的JSON数据前面会多出空白字符,后面网上查了一下是说php bom头问题(详细介绍可以自行网上搜一下),按照这个思路找了一下,发现原来是php后台在对wx.getUserinfo 中 encryptedData加密数据进行解密时,调用了微信封装好的类,该类的php文件编码格式为,后面用Editplus编辑器将其改为   至此问题解决.如果不改编码的话,还有一种解决办法,就是在小…
微信小程序 Session 失效 微信小程序,前端请求后端,中间多了个微信服务器,所以请求的流程就是 页面--微信服务器--目标服务器 这就导致了一个问题 session 每次请求都是一个新的会话 解决办法 : 项目搭建使用的是 maven + spring boot + spring data jpa @WebListener public class MySessionListener implements HttpSessionListener { @Override public voi…
1. 前言 微信小程序开发平台,提供有一类 API,可以让开发者获取到微信登录用户的个人数据.这类 API 统称为开放接口. Tip:微信小程序开发平台,会把微信登录用户的个人信息分为明文数据和敏感数据. 明文数据也称为公开数据,开发者可以直接获取到,如登录者的昵称.头像-- 敏感数据如电话号码.唯一标识符--等数据,只有高级认证开发者和经过登录者授权后才能解密获取到. 这一类 API较多,且 API之间功能有重叠之处,相互之间的区别较微小.有的适用于低版本,有的适用于高版本. 为了避免在使用时…
微信小程序开发:学习笔记[9]——本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在用户关闭小程序重新打开时可以恢复之前的状态.我们还可以利用本地缓存一些服务端非实时的数据提高小程序获取数据的速度,在特定的场景下可以提高页面的渲染速度,减少用户的等待时间. 读写本地数据缓存 小程序提供了读写本地数据缓存的方法: 通过wx.getStorage/wx.getStorageSync读取…
1.小程序遮罩滚动穿透问题 解决方案: <view class="mask" wx:if="{{showVipRights}}" catchtap='hideMask' capture-catch:touchmove="preventScroll"></view> preventScroll() { console.log('preventScroll'); } 2.上传文件到cdn失败 解决方案:注意form表单的nam…
using AIOWeb.Models; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; namespace AIOWeb { /// <summary> /// wxapi 的…
获取客户 openId 和 unionId 需要以下步骤(都为必须步骤) 1.从验证从客户端传上来code, 获取sessionKey (需要配合小程序appid ,secret 发送到微信服务器) $params = [ 'appid' => $this->appid, 'secret' => $this->secret, 'js_code' => $this->code, 'grant_type' => $this->grant_type ]; 2.获取…
之前一直对着文档使用特定接口, 今天闲来仔细研究一下各个接口的使用, 然后发现了session_key和access_token两个关键字意义有点重复啊? 目测都是某种钥匙来打开一扇门的, 那为什么有两片钥匙呢? 仔细看了下文档, 总结如下: 1.session_key 获取或者揭秘用户的个人信息用的, 从名字就能看出来, session, 搞后端的同学都知道是干什么用的. 他的玩法是这样的, 一般用户在小程序端登陆的时候会返回一个js_code, 这个js_code发送到服务端之后用来换取所谓…
Java服务端微信小程序解密用户信息.手机号需用到session_key也需要decode,以下是官方描述: 加密数据解密算法 接口如果涉及敏感数据(如wx.getUserInfo当中的 openId 和 unionId),接口的明文内容将不包含这些敏感数据.开发者如需要获取敏感数据,需要对接口返回的加密数据(encryptedData) 进行对称解密. 解密算法如下: 对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充. 对称解密的目标密文为 Base64_Decode(e…
一.创建小程序项目 mock.js 从 https://github.com/nuysoft/Mock/blob/refactoring/dist/mock.js 下载 api.js:配置模拟数据和后台接口数据,通过 DEBUG = true;//切换数据入口 let API_HOST = "http://xxx.com/xxx"; let DEBUG = true;//切换数据入口 var Mock = require('mock.js') function ajax(data =…
前段时间接触了微信小程序,现在回过头来做一些笔记. 先上效果图 后台数据管理界面(PHP) 校园信息通微信小程序前端界面 下面先简单的说一下怎样部署一个微信小程序 首先是前端 微信小程序有它专门的开发手册:https://mp.weixin.qq.com/debug/wxadoc/dev/ 和微信web开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html?t=18090422 下载后就可以根据开…
一.需求: web项目中配置文件配置的密码是明文的, 现在需要修改成密文, 加密方式采用AES, 于是写了个工具类用于加密和解密. 又因为这个密码是由客户来最终确定, 所以为了部署时方便起见, 写了个独立的java小程序, 便于获取明文或密文修改配置文件. 效果图如下: 二.开撸 第1步:创建一个java工程, 名称暂定为AESEncodeOrDecode 第2步:编写AES加密和解密工具类(此时需要导入额外的3个jar包如上图lib目录下所示) package com.xgcd; import…
如下图标记的三个点 在调试过程中出现问题,特此记录. 1. 之前在浏览器测试接口习惯省略 http:// ,是因为浏览器默认有一个检测,在你输入的网址前面加http://,如果有就不加. 然而在微信小程序开发接口中不会默认添加,所以要写完整,否则访问不到. 如果写为 url:localhost:8080/data.json 报错:VM530:1 request:fail invalid url "localhost:8080/data.json" 2. 刚开始将赋值的冒号: ,下意识的…
微信小程序商城(Java版) 演示地址 账号:admin 密码:admin 小程序体验码: 技术选型 1 后端使用技术 1.1 springframework4.3.7.RELEASE 1.2 mybatis3.1.0.MyBatis-Plus 3.1.0 1.3 shiro1.3.2 1.4 servlet3.1.0 1.5 druid1.0.28 1.6 slf4j1.7.19 1.7 fastjson1.2.30 1.8 poi3.15 1.9 velocity1.7 1.10 quart…
aes前后端加密解密交互 小程序端 1. 首先引入aes.js /** * [description] CryptoJS v3.1.2 * [description] zhuangzhudada sort out */ var CryptoJS = CryptoJS || function(u, p) { var d = {}, l = d.lib = {}, s = function() {}, t = l.Base = { extend: function(a) { s.prototype…
使用java8 java7  java6 解密微信小程序encryptedData可以回遇到一些错误 1.java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CBC/PKCS7Padding 2.Java.security.NoSuchProviderException: no such provider: BC 解决方法: 1.下载bcprov-jdk15on:jar,下再地址:http…
app.js // app.js App({ onLaunch() { let token = wx.getStorageSync('token') if (!token) { wx.login({ success:ret=>{ let code = ret.code wx.request({ url: 'http://www.zy.com/api/wxlogin', method:"POST", data:{code}, success:res=>{ console.lo…
需求对话 提问 我在本地web能够使用ws协议去链接websocket,但是小程序不能使用. 回答 由于小程序使用的是SSL加密协议,所以需要使用wss.这里wss与ws的关系就相当于https于http的关系. 提问 我用的是宝塔Linux,SSL好申请,但是wss我就不会配置了. 回答 对的宝塔Linux申请SSL很简单,一键申请,相对https实现就很简单了.那我们开始做配置吧.但前提你需要保证以下的几个必备条件. 前提必备: 需要先为你的websocket域名申请SSL 宝塔Linux(…
公众平台"附近小程序"功能上线后,一个主体账号可以同时绑定N+个门店,这对连锁零售店铺来说是重磅福利呀,无论你是通过搜索还是线下扫码进入小程序,线上与线下都完全贯通了,线上多种入口进入小程序点餐完成支付,线下门店就餐方便,省去大量排队时间. 现在许多连锁零售门店,其中餐饮连锁最多,其次到服装.电影院等等都是打造线上线下交易闭环,实现线上线下数据(订单.财务.数据等)统一管理. 商家在线下设置优惠买单的二维码,由于小程序体验快的特点,消费者无需下载安装直接扫描二维码后就能进入商家店铺页面…
微信小程序中textarea没有bindchange事件,所以无法在输入时给变量赋值. 虽然可以使用bindblur事件,但是绑定bindblur事件,如果再点击按钮,则先执行完按钮事件后,再去执行bindblur事件,所以在js文件取不到输入值, 解决方法:结合from表单,textarea文本框输入后,再去点击提交按钮,这时会先执行textarea事件(获取文本框输入内容),再去执行数据提交,这样问题就解决了 wxml文件代码: <form bindsubmit="evaSubmit&…
一.序 上一篇介绍了如何从零开发微信小程序,博客园审核变智障了,每次代码都不算篇幅,好好滴一篇原创,不到3分钟从首页移出来了.这篇介绍一下组件封装和我的踩坑历程. 二.封装微信小程序可复用组件 首先模块化的思想是通用的,在这不做过多解释了.直接上代码,然后解释代码: // wxml <view class="c-menu"> <view wx:for="{{menuList}}" wx:key="{{item}}" class=…
游记分享 博客班级 https://edu.cnblogs.com/campus/zjcsxy/SE2020 作业要求 https://edu.cnblogs.com/campus/zjcsxy/SE2020/homework/11334 作业目标 1. 编写一个小程序,可以全新编写,也可以学习别人的小程序进行修改 2. 熟悉git代码管理流程,将源代码上传到到github 3. 在博客园班级中写一篇相应的博文 作业源代码 git@github.com:wfs2018/software-engi…
1小程序路由跳转 wx.switchTab(Object object) 这里的tabBar是底下的导航栏指定的页面 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 tabBar list中最多支持5个路径 参数 Object object 示例代码 { "tabBar": { "list": [ { "pagePath": "index", "text": "首页"…
结合自己在平时的开发中遇到的各种问题,和浏览各种问题的解决方案总结出一些自己在日常开发中常用的技巧和知点,希望各位不吝斧正. 1.短生命周期数据存储 以小程序启动到彻底关闭为周期的的数据建议存储在app.js文件夹中,引用app.js: const app =getApp(); 假设Value是在小程序本次生命周期中经常使用到的一个数据,比如说请求API的Token,动态的令牌等.那么就可以把这个值赋值到全局变量中去.实际上,并不是只有app.js中的globalData是全局变量,可以自己定义…
微信小程序出来有一段时间了,之前没看好小程序(觉得小程序体验不咋好,内心对新事物有抵触心里,请原谅我的肤浅[捂脸][捂脸]),不过后来偶然之间玩过小程序的游戏(跳一跳.球球大作战.猜画小歌 等),顿悟原来小程序的体验还可以做到这样 几乎可以媲美原生啦,此后内心一直有跃跃欲试的骚动,然并卵无奈没有时间.好在公司新版本App上线后终于有时间来搞一搞了,花了两天的时间写了一个简单的服务器请求 把趟过坑记录一下 方便自己查询 也为后来的小伙伴少走些弯路,闲言少叙 下面开始进入正题 1.小程序对开发人员的…
§ 视图与数据关联 本文配套视频地址: https://v.qq.com/x/page/z0554wyswib.html 开始前请把 ch3-3 分支中的 code/ 目录导入微信开发工具 首先 首先我们要做的是什么呢?直接写模板逻辑吗?不是,给用户以良好的提示是很重要的,所以,我们要做的第一件事就是,加载中... 这里我们采用官方 loading 组件,所以现在就可以直接拿来用了. 修改 index.wxml,增加 loading 组件.很明显,变量 hiddenLoading 控制着它的展示…
本地开发调试小程序时,用手机预览需要有如下设置:1.微信开发者工具中设置:不校验安全域名.web-view 域名.TLS 版本以及 HTTPS 证书.这样在有网络请求的时候,就可以访问本地的服务器了,因为本地开发调试一般都是IP+端口的访问地址.2.手机和电脑(本地服务器)应该配置为同一局域网段.3.手机扫码进入小程序后,应该打开调试模式才能请求到网络数据.4.有时候发现以上要求都满足后,还是无法请求到数据,可能原因是你的电脑的防火墙屏蔽了你的请求,这时候关闭防火墙就可以了.----------…
欢迎加入小程序交流群:本群定期更新在工作种遇到的小知识(交流QQ群:604788754) WXML: <!--遍历循环的数据部分--> <block wx:for="{{datas}}" wx:for-index='idx' wx:for-item='item'> <view class="shuju"> <view class="shuju01">{{item.datass}}</view&…
小程序 picker 多列选择器 数据动态获取 需求是将各校区对应各班级的数据 以两列选择器的方式展示出来,并且可以在选择完成之后记录选结果参数. 校区数据 和 班级数据 分别是两个接口,以 校区 teach_area_id 字段关联 其各班级数据 <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColum…