Java后端小程序微信登录怎么写??其实还蛮简单的 , 可以说一搜一大把,下面说下两种方式 。
自行开发
主要就是通过小程序端直接请求登录获取到code(登录凭证)、如果需要获取用户手机号则需要再次授权需要iv和encryptedData,注意这里授权两次,也可以作为一次处理 。
(1) 后端接收到小程序端请求的code,进行解密,可以参考微信小程序开发文档,拿到openId和session_key,这一步如果是已经注册的用户可以直接将后台分配的token一起组成对象存储到redis中,期限7-30天皆可,先从redis判定这个openId是否已经解析过且已存储为正式用户,是则直接返回系统的登录凭证完成登录 。如果不是就需要走第二步 。
(2)通过iv和encryptedData解析获取用户的手机号,完成解析后将用户信息存储 , 并一样存储到数据库和redis中,返回凭证 。
2. 使用已经集成好的sdk,使用maven项目直接引入对象的jar即可 。
举个栗子 weixin-java-miniapp 可以看下对应的文档说明 , 使用已经集成好的方法即可 。
求java经典小程序代码代码如下:
public class HelloWorld {
public static void main(String []args) {
int a = 3, b = 7 ;
System.out.println("Hello World!");
}
public static int f(int a, int b){
return a*a + a*b + b*b;
}
}
结果如下:
小程序后台获取openId解密的java代码怎么写一、获取code
将code作为参数传递过来
//如果有code,说明是微信小程序,根据code获取openId
//classify用于标识是哪个小程序
if (!CheckUtil.checkNulls( keUser.getCode(),keUser.getClassify())){
//
String openid = OpenIdUtil.oauth2GetOpenid(keUser.getCode(),keUser.getClassify());
printParamsLog(openid, logger);
keUser.setUserId(openid);
}1234567812345678
二、工具类
package com.util;
import net.sf.json.JSONObject;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import java.util.HashMap;
import java.util.Map;
/**
* @author xsx
*/
public class OpenIdUtil {
public static String oauth2GetOpenid(String code,String classify) {
String appid="";
String appsecret="";
switch (classify){
case "1":
//自己的配置appid
appid = "**********";
//自己的配置APPSECRET;
appsecret = "**********";
break;
case "2":
appid = "**********";
appsecret = "************";
break;
case "3":
appid = "**********";
appsecret = "************";
break;
case "4":
appid = "**********";
appsecret = "************";
break;
case "5":
appid = "**********";
appsecret = "************";
}
//授权(必填)
String grant_type = "authorization_code";
//URL
String requestUrl = "";
//请求参数
String params = "appid=" + appid + "secret=" + appsecret + "js_code=" + code + "grant_type=" + grant_type;
//发送请求
String data = https://www.04ip.com/post/HttpUtil.get(requestUrl, params);
//解析相应内容(转换成json对象)
JSONObjectjson = JSONObject.fromObject(data);
//用户的唯一标识(openid)
String Openid =String.valueOf(json.get("openid"));
//System.out.println(Openid);
return Openid;
}
}
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
推荐阅读
- pdf转电路图,pdf转电子图板
- 如何对付电商白酒,如何对付电商白酒销售
- 华为子母路由器怎么拆卸,华为路由子母装使用方法
- vb.net如何字体 vb窗体字体怎么设置
- redis和数据库同步更新问题的简单介绍
- 单机游戏exe下载,游戏exe
- 可以做装备的单机游戏,可以自己做装备的游戏
- linux命令行换用户 linux命令行怎么切换用户
- flutter调用微信登录schema,flutter集成微信登录