java java小程序序太阳码中间的logo如何能换掉成为当前用户的头像,成为这个用户的专属二维码

微信小程序获取用户openid,头像昵称信息,后台java代码
首先最近正在练习微信小程序刚刚写了一个获取用户openid的代码,貌似之前的小程序可以直接在前台获取openid,现在应该不行了,必须要经过自己的服务器,通过自己的服务器去获取openid,下面就给大家上代码,我也是新手不喜勿喷.
小程序前端 app.js
wx.login({
success: res =& {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
if(res.code){
wx.getUserInfo({
success: function(res_user){
wx.request({
url: 'http://192.168.xx.xx:8080/test/v1/getOpenId', //这里是本地请求路径,可以写你自己的本地路径,也可以写线上环境
code: res.code,//获取openid的话 需要向后台传递code,利用code请求api获取openid
headurl: res_user.userInfo.avatarUrl,//这些是用户的基本信息
nickname:res_user.userInfo.nickName,//获取昵称
sex:res_user.userInfo.gender,//获取性别
country: res_user.userInfo.country,//获取国家
province: res_user.userInfo.province,//获取省份
city: res_user.userInfo.city//获取城市
success: function(res){
wx.setStorageSync("openid", res.data)//可以把openid保存起来,以便后期需求的使用
一些详细的参数请参考微信api:
下来就是Java
上面这是controller,其中有些地方也是取别人的优点写的
@ResponseBody
@RequestMapping(value = "/getOpenId", method = RequestMethod.GET) // 获取用户信息
public String getOpenId(@Param("code") String code, @RequestParam("headurl") String headurl,
@RequestParam("nickname") String nickname, @RequestParam("sex") String sex,
@RequestParam("country") String country, @RequestParam("province") String province,
@RequestParam("city") String city) {
String WX_URL = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code";
if (StringUtils.isBlank(code)) {
System.out.println("code为空");
String requestUrl = WX_URL.replace("APPID", WxConfig.APPID).replace("SECRET", WxConfig.APPSECRECT)
.replace("JSCODE", code).replace("authorization_code", WxConfig.GRANTTYPE);
JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "GET", null);
if (jsonObject != null) {
// 业务操作
String openid = jsonObject.getString("openid");
wechatService.selectUserByOpenId(openid, headurl, nickname, sex, country, province, city);
} catch (Exception e) {
System.out.println("业务操作失败");
e.printStackTrace();
System.out.println("code无效");
} catch (Exception e) {
e.printStackTrace();
return "错误";
//可能代码复制过来,错位了,你们自己格式化一下吧。
首先获取openid根据文档需要访问一个https接口 如下:
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
appid是你小程序的appid,secret是你小程序的appsercet,js_code是前台登陆成功后返回给你的code,grant_type为固定值authorization_code.
appid跟secret的查看在微信公众平台:
注意:appid跟secret只有小程序的管理员可以看到,如果只是有权限的话,还是看不到,必须管理员扫码才可以看到,进去之后就在 设置→→→开发设置
controller中涉及到三个类,CommonUtil是用来请求微信接口的,TrustManager是管理器,WxConfig是配置一些你的小程序
import java.io.BufferedR
import java.io.InputS
import java.io.InputStreamR
import java.io.OutputS
import java.net.ConnectE
import java.net.URL;
import javax.net.ssl.HttpsURLC
import javax.net.ssl.SSLC
import javax.net.ssl.SSLSocketF
import javax.net.ssl.TrustM
import net.sf.json.JSONO
public class CommonUtil {
* 发送https请求
* @param requestUrl 请求地址
* @param requestMethod 请求方式(GET、POST)
* @param outputStr 提交的数据
* @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) {
JSONObject jsonObject =
// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setSSLSocketFactory(ssf);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
// 设置请求方式(GET/POST)
conn.setRequestMethod(requestMethod);
// 当outputStr不为null时向输出流写数据
if (null != outputStr) {
OutputStream outputStream = conn.getOutputStream();
// 注意编码格式
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
// 从输入流读取返回内容
InputStream inputStream = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str =
StringBuffer buffer = new StringBuffer();
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
// 释放资源
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
inputStream =
conn.disconnect();
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
System.out.println("连接超时");
} catch (Exception e) {
System.out.println("请求异常");
return jsonO
import java.security.cert.CertificateE
import java.security.cert.X509C
import javax.net.ssl.TrustM
import javax.net.ssl.X509TrustM
* 类名: MyX509TrustManager.java&/br&
* 描述: 信任管理器&/br&
* 开发人员:wangl&/br&
* 创建时间: &/br&
public class MyX509TrustManager implements X509TrustManager {
// 检查客户端证书
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
// 检查服务器端证书
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
// 返回受信任的X509证书数组
public X509Certificate[] getAcceptedIssuers() {
有了这两个类就可以获取到用户的openid了,大家都知道,保存用户的昵称跟头像是没什么用的,但是需求有需要,只好保存 了,下面我贴出业务层代码,哈哈哈哈哈,我只是在瞎搞,自己练习,如果代码有什么可笑的地方不要喷我。
如果用户更换了头像或者昵称,我们并不知道用户什么时候更换,所以我想了一种方法,判断用户是否改变数据,如果改变数据的话,我们再进行数据库的操作,如果不改变的话直接return返回,结束操作。
下面这段代码是ServiceImpl类。
public void selectUserByOpenId(String openid, String headurl, String nickname, String sex, String country,
String province, String city) {
String userip = country+province+//用户地址
String usersex = "";
User user = mapper.selectUser(openid);
if(user!=null){//如果用户不等于空
if(user.getNickname().equals(nickname)&&user.getHeadurl().equals(headurl)&&user.getSex().equals(sex)&&user.getUserip().equals(userip)){
System.out.println("数据暂未修改");
mapper.updateUserMseeage(openid,nickname,headurl,sex,userip);
System.out.println("修改数据成功");
} catch (Exception e) {
System.out.println("修改数据失败");
e.printStackTrace();
}else{//用户为空进行
String phone = "";
String createtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
mapper.initUser(openid,nickname,headurl,phone,sex,userip,createtime);
} catch (Exception e) {
System.out.println("初始化错误");
e.printStackTrace();
首先根据得到的openid查询一次数据库,判断是否存在这个用户,如果没有的话进行数据初始化,如果有的话判断用户的数据跟新得到的数据进行比较,相等不做操作,不想等再进行数据修改,这样就可以得到用户的新数据。但是总感觉哪里不对劲。
大家如果有什么CSDN资源没会员想下载的话可以加我QQ,把链接给我,我帮你们下载,免费呦。
对了,给大家推荐两个博主,里面的博客资源解释的也很详细,良心作品,在线解答,我的老哥们。
这是链接:
这是资深Java开发博主
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!日更新:直接输入二合一淘口令,可以一键获取商品ID和具体信息。日更新:如果提示“淘口令的链接加密”,则无法自动填写商品ID,需要手动去填写。
日更新:很多人纠结在小程序太阳码样式问题上,其实真正的用法是自己扫描后,转发到群里去啊。
日更新,发布端处理大部分数据采集和一些逻辑,更换个企业小程序审核稍微容易一些,被虐到没脾气。
日更新,小程序被封了剪贴板能力后,可以用以下方式凑合用。
--------------------------------------------------------------
在微信发淘口令和网址,最近都很不容易。
一方面容易被封微信号,另一方面网址也很容易拦截打不开。
会出现下面这两种情况。
我试了下把淘口令放到微信小程序上,暂时没有被影响。
等过段时间没问题了,我再集成在淘口令生成工具里面。
太阳码和图片合成的效果还有些简陋,用着先别纠结。
主要是分享到群里,而不是发太阳码到群里让别人长按识别。
转发到群里的效果:
工具地址:
好用记得评论告诉我。
额外说明:如果没办法自动获取商品数字ID,可以手动获取商品数字ID。
2018年六月
11121314151617
181920222324
252627282930草料微信二维码生成器---快速制作美观的微信公共号二维码建筑施工设备巡检综合上传微信二维码,立即美化电脑中有保存二维码图片,可以选择 上传二维码图片电脑有摄像头,并且手机里有二维码图片,可以选择
步骤:1.进入微信,点击右上角的搜索图标
2.点击最右边的微信公众号,然后输入公众号的名称,进行搜索 3.点击搜索到的公众号,进入到账号信息页面,就可以看到公众号的微信号了。 步骤:1.登陆微信公众号。https://mp.weixin.qq.com/ 2.登陆后在公众平台的设置处找到公众账号设置 3.右键保存二维码图片 上传二维码图片 步骤:1.在手机上登录微信 2.点击右下角的按钮“我”,然后点击左上角头像 3.点击二维码名片
4.点击摄像头扫码,将二维码图片对准摄像头即可
内容已超150字,生成的二维码图案过于复杂不易扫描,请使用
基本颜色LOGO美化器容错30%大小280 px 码制
上传 LOGO常用 LOGO取消
快速美化器
快速创建可重用的美化模版旧版高级美化器仅QR Code码制支持二维码美化常见问题
美化微信二维码需先准备二维码原图。获取微信二维码打开自己的微信选择底部菜单的第四项【我】,点击【头像】一栏进入到个人信息页面,点击【我的二维码】进入二维码名片界面,点击微信右上功能菜单按钮,保存图片。
所有在草料生成的二维码均长期有效,包括静态码和活码。
草料二维码是目前国内专业的二维码在线服务平台,我们保证用户生成的每一个二维码都不会因为技术原因而失效。我们也不会对免费版用户进行强制收费。
可以的。二维码不分国内国外,因为二维码只是一种编码方式,能否查看只和编入的内容有关。在草料生成的二维码使用了目前世界上应用最广泛的QR码编码方式,保证了所有普通扫码设备和手机都可以准确的扫描解码。
可以在草料首页生成普通的二维码后,点击右侧“上传LOGO”之后,就可以生成带LOGO的二维码了。小程序要用对方法就能让实体店“火的一塌糊涂”小程序要用对方法就能让实体店“火的一塌糊涂”长春阿凡达网络开发百家号微信月活用户已破10亿,小程序也日趋成熟,越来越多的企业、商家纷纷投入到开发小程序的浪潮当中,以占得先机尽早抢占微信小程序带来的巨大流量红利。马云16年提出了一个新零售的概念,同年双11,优衣库就被成为新零售的标杆案例,他是怎么做的呢?双十一活动期间,客户可以在优衣库天猫旗舰店消费,然后到线下去提货。一句话总结新零售,就是线上引流,线下消费。你们也可以理解为,马云搞的电商,已经把所有的客户给抢完了,线上已经没有多少空间了,所以,他来抢线下的饭碗了。实体门店,你们现在经营地艰难吗?私下骂过多少次马云,乱搞价格战,把客户都给抢走了?未来,只会更难!小程序好比是一张入场券!你做了,就可以进入到微信流量的共享圈,否则就跟你无缘!现在谁不用微信?如果你不用,你的对手在用,微信就会助力对手抢走本属于你的客流!小程序与饿了么、美团的区别?按照新零售的“线上引流,线下消费”的核心,看起来,美团、饿了么这样的O2O平台,更像是真正的新零售核心啊,那么我做了饿了么、美团,还需要做小程序吗?首先,强调一点:每一个商户未来都必须要要有一个自己的小程序,区别是在于,你是现在自己主动进入,主动去抢客户,还是未来被动入局,被动防守。然后,建议现在所有的商户都两条腿走路,做了饿了么、美团,同时也去做小程序客户归属:小程序是商家自己的,客户更是商家自己的。如果你愿意把这个客户介绍给其他商家,对方还得给你佣金。③、推广方式:小程序除了独立店铺二维码以外还有小程序码、太阳码,附近的小程序、公众号关联、页面转发微信好友微信群等等,更有利于二次营销。④、小程序:饿了么、美团自己也做了自己的小程序,现在的流程是这样的,饿了么做了自己的小程序,微信免费给他流量,饿了么再把这种流量卖给你。所以说,与其在饿了么买微信给他的免费流量,还不如直接在小程序接收微信给你的免费流量。⑤、5公里流量免费曝光:附近的小程序,5公里流量免费曝光,白给的流量你不要?你的同行就笑纳了!不说废话,打开附近的小程序,看一下,里面有没有你的同行!并不是拥有了一个小程序就可以坐享其成,如何制定一个合适的运营方案,如何实现精准营销才是商户在拿到小程序后需要考虑的。依托于微信生态圈的小程序与微信公众平台一样,被腾讯赋予了超强的导流能力,如何运营好一个小程序不如从这几方面考虑:利用众多入口进行精准合理导流,运用微信社交链完成实质转化,丰富产品内容提升曝光度,制造点对面的裂变效果,丰富小程序功能获得更多盈利手段,完善商户服务过程提升服务质量制造口碑营销。运营方案更适合一个针对用户思维开拓的过程,其核心依旧是获取并激活新用户,留存老用户。拥有APP运营经验的商户应该不难发现,APP获取用户的方式是通过产品吸引用户自主下载或者由二维码和线上线下活动推广得到新用户。小程序在APP的引流手段上更具优势除了传统APP推广方式外,搜一搜、好友分享、附近小程序等用户了解小程序的主要方式。运用社交链做到口碑式传播、病毒式传播。通过制造热点来吸引大批受众,像是“头脑王者”“答题抢红包”等小程序正是利用这一特点达到迅速传播的效果。了解了小程序入口后,在自己的小程序中设置自己店铺,让小程序结合线下店铺服务,用户通过微信公众号,附近的小程序,线下扫码等方式打破传统线下使用场景无法与线上结合的窘境,使用小程序的同时让用户直接与商家沟通,优惠活动等信息也能第一时间从小程序中了解,增加用户粘性,促使二次购买率。举个例子,开通附近小程序功能后,5公里范围内的所有微信用户都能看到该小程序。连锁门店类型店铺更可以在短时间内,大范围大面积覆盖其服务区域,让连锁店铺能够服务跟更多人群,形成集群品牌效应。线下场景原本是微信的短板部分,微信具有大量的线上资源,用户活跃度高,小程序的出现正弥补了微信的线下短板,线下商户使用小程序接轨微信线上自带的流量资源完成用户线下转化,线下经营是大部分商户的主要客流来源。小程序起到的作用主要是提升商户效率,吸引客流,促进交易和再次消费,利用微信强大的社交关系链来为商户制造客流来源,只要制定精准的营销方案和运营方式就能为商户带来利益。目前的小程序更像是打造成线上+线下交易支付,导购消费,便捷服务的工具,但其背后的产业链可能相当长,无论是小程序用户还是商户,更多的是需要小程序提供一个解决方案。对用户来说,小程序结合线下应用场景,解决了排队时间长,软件需要安装,手机占内存等问题,用完即走,触手可及则是针对用户的痛点所设计的。对于商户来说,小程序能否吸引足够流量到商户,能否赚到足够利益才是键,最早接触小程序的商户在不断摸索中制定了合适自己的营销方向,获得了足够利益,所以所以他们愿意继续使用小程序。让小程序具备多样化的应用场景,能大大提升小程序的使用率,让其工具的本质发挥到极致,公众号+小程序,线下扫码等都是小程序应用场景最具代表性的典范。小程序的本质是工具,如今已经融入到我们生活中的方方面面,这和我们使用手机是一样的。手机的本质也是工具,一旦养成了使用习惯,就会像使用手机一样依赖小程序。随着小程序使用率的上升,小程序市场在不断的拓展,不断有新的小程序应用场景诞生。商户可以通过不断开拓应用场景、提升服务质量来为用户制造良好的使用体验。交通旅行、餐饮服务、外卖快递、金融理财等等都少不了小程序的身影。小程序融入我们生活的同时也在不断改变我们的生活习惯。微信发布的小程序并为实现大规模爆发,如同张小龙所说的那样“我们并不希望它突然变成一个被催肥的东西,所以我也希望大家能够跟我们一样,比较有耐心去看待它。”但如今看来,小程序和微信支付等商业服务体系结合之后,自身价值已经通过另一种方式得到了体现,如今的小程序是否能够解决用户实际需求,答案是显而易见的。本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。长春阿凡达网络开发百家号最近更新:简介:互联网营销,网站、APP、商城、小程序开发作者最新文章相关文章微信小程序和网页版程序的区别在哪里? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。<strong class="NumberBoard-itemValue" title="被浏览<strong class="NumberBoard-itemValue" title="6,409分享邀请回答1K110 条评论分享收藏感谢收起44967 条评论分享收藏感谢收起

我要回帖

更多关于 java小程序代码 的文章

 

随机推荐