瀏覽代碼

微博init对接的参数接口

quyueting 5 年之前
父節點
當前提交
27dcd7178a

+ 66 - 1
minigame/src/com/hssx/controller/UserController.java

@@ -7,7 +7,9 @@ import java.security.NoSuchProviderException;
 import java.util.Date;
 import java.util.SortedMap;
 import java.util.TreeMap;
+
 import javax.servlet.http.HttpServletResponse;
+
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.httpclient.methods.PostMethod;
@@ -16,16 +18,19 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.estates.filter.EmojiHttpServletRequestWraper;
 import com.hssx.constant.Constant;
-import com.hssx.entity.News;
 import com.hssx.entity.User;
 import com.hssx.entity.UserExample;
 import com.hssx.mapper.NewsMapper;
 import com.hssx.mapper.UserMapper;
+import com.hssx.mapper.WeiboParamMapper;
 import com.hssx.mapper.WxParamMapper;
+import com.hssx.model.WeiboParam;
+import com.hssx.model.WeiboParamExample;
 import com.hssx.model.WxParam;
 import com.hssx.model.WxParamExample;
 import com.hssx.utils.HttpKit;
@@ -33,6 +38,7 @@ import com.hssx.utils.HttpRespMsg;
 import com.hssx.utils.JsapiTicketUtil;
 import com.hssx.utils.Sha1Util;
 import com.hssx.utils.Snowflake;
+import com.hssx.utils.WechatAndMicroblogUtil;
 
 @Controller
 @RequestMapping("/user")
@@ -42,6 +48,8 @@ public class UserController {
 	@Autowired
 	WxParamMapper wxParamMapper;
 	@Autowired
+	WeiboParamMapper weiboParamMapper;
+	@Autowired
 	NewsMapper newsMapper;
 	
 
@@ -229,4 +237,61 @@ public class UserController {
 		response.getWriter().println(msg.toJSONStr());
 		return null;
 	}
+	
+	/**
+	 * 获取微博JS config参数
+	 * @param url 当前页面的完整 URL (不进行 url encode,不包含 # 及 fragment)
+	 * @param response
+	 * @return
+	 * @throws Exception
+	 */
+	@RequestMapping(value="getWeiboConfigParam")
+	public String getWeiboConfigParam(
+			@RequestParam String url,
+			HttpServletResponse response) throws Exception {
+		HttpRespMsg msg = new HttpRespMsg();
+		System.out.println("微博接收到url=="+url);
+		WeiboParamExample example = new WeiboParamExample();
+		Date d = new Date();
+		example.createCriteria().andExpireTimeGreaterThan(d);
+		example.setOrderByClause("id desc limit 1");
+		String jsapiTicket = "";
+		if (weiboParamMapper.countByExample(example) == 0) {
+			JSONObject json = WechatAndMicroblogUtil.getWeiboSign();
+			if (json != null) {
+				//{"result":true,"appkey":"2141531565","js_ticket":"f67b26833f","expire_time":7199}
+				WeiboParam param = new WeiboParam();
+				param.setIndate(d);
+				Date exp = new Date();
+				//设置过期时间
+				exp.setTime(d.getTime() + json.getIntValue("expire_time")*1000L);
+				param.setExpireTime(exp);
+				jsapiTicket = json.getString("js_ticket");
+				param.setJsapiTicket(jsapiTicket);
+				weiboParamMapper.insertSelective(param);
+			} else {
+				throw new Exception("get weibo sign ticket fail");
+			}
+		} else {
+			jsapiTicket = weiboParamMapper.selectByExample(example).get(0).getJsapiTicket();
+		}
+		// 随机数
+		String nonce_str = Sha1Util.getNonceStr();
+		String timestamp = Sha1Util.getTimeStamp();
+		// 对以下字段进行签名
+		SortedMap<String, String> packageParams = new TreeMap<String, String>();
+		packageParams.put("jsapi_ticket", jsapiTicket);
+		packageParams.put("noncestr", nonce_str);
+		packageParams.put("timestamp", ""+timestamp);
+		packageParams.put("url", url);
+		String sign = Sha1Util.createSHA1Sign(packageParams);
+		packageParams.put("sign", sign);
+		packageParams.put("appkey", Constant.MICROBLOG_APPKEY);
+		msg.data = packageParams;
+		
+		response.setContentType("application/json");
+		response.setCharacterEncoding("UTF-8");
+		response.getWriter().println(msg.toJSONStr());
+		return null;
+	}
 }

+ 75 - 0
minigame/src/com/hssx/mapper/WeiboParamMapper.java

@@ -0,0 +1,75 @@
+package com.hssx.mapper;
+
+import com.hssx.model.WeiboParam;
+import com.hssx.model.WeiboParamExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface WeiboParamMapper {
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	long countByExample(WeiboParamExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	int deleteByExample(WeiboParamExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	int deleteByPrimaryKey(Integer id);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	int insert(WeiboParam record);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	int insertSelective(WeiboParam record);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	List<WeiboParam> selectByExample(WeiboParamExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	WeiboParam selectByPrimaryKey(Integer id);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	int updateByExampleSelective(@Param("record") WeiboParam record, @Param("example") WeiboParamExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	int updateByExample(@Param("record") WeiboParam record, @Param("example") WeiboParamExample example);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	int updateByPrimaryKeySelective(WeiboParam record);
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	int updateByPrimaryKey(WeiboParam record);
+}

+ 271 - 0
minigame/src/com/hssx/mapper/WeiboParamMapper.xml

@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hssx.mapper.WeiboParamMapper">
+  <resultMap id="BaseResultMap" type="com.hssx.model.WeiboParam">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="jsapi_ticket" jdbcType="VARCHAR" property="jsapiTicket" />
+    <result column="indate" jdbcType="TIMESTAMP" property="indate" />
+    <result column="expire_time" jdbcType="TIMESTAMP" property="expireTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    id, jsapi_ticket, indate, expire_time
+  </sql>
+  <select id="selectByExample" parameterType="com.hssx.model.WeiboParamExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from weibo_param
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from weibo_param
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    delete from weibo_param
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.hssx.model.WeiboParamExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    delete from weibo_param
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.hssx.model.WeiboParam">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
+      SELECT LAST_INSERT_ID()
+    </selectKey>
+    insert into weibo_param (jsapi_ticket, indate, expire_time
+      )
+    values (#{jsapiTicket,jdbcType=VARCHAR}, #{indate,jdbcType=TIMESTAMP}, #{expireTime,jdbcType=TIMESTAMP}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.hssx.model.WeiboParam">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
+      SELECT LAST_INSERT_ID()
+    </selectKey>
+    insert into weibo_param
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="jsapiTicket != null">
+        jsapi_ticket,
+      </if>
+      <if test="indate != null">
+        indate,
+      </if>
+      <if test="expireTime != null">
+        expire_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="jsapiTicket != null">
+        #{jsapiTicket,jdbcType=VARCHAR},
+      </if>
+      <if test="indate != null">
+        #{indate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="expireTime != null">
+        #{expireTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.hssx.model.WeiboParamExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    select count(*) from weibo_param
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    update weibo_param
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.jsapiTicket != null">
+        jsapi_ticket = #{record.jsapiTicket,jdbcType=VARCHAR},
+      </if>
+      <if test="record.indate != null">
+        indate = #{record.indate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.expireTime != null">
+        expire_time = #{record.expireTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    update weibo_param
+    set id = #{record.id,jdbcType=INTEGER},
+      jsapi_ticket = #{record.jsapiTicket,jdbcType=VARCHAR},
+      indate = #{record.indate,jdbcType=TIMESTAMP},
+      expire_time = #{record.expireTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.hssx.model.WeiboParam">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    update weibo_param
+    <set>
+      <if test="jsapiTicket != null">
+        jsapi_ticket = #{jsapiTicket,jdbcType=VARCHAR},
+      </if>
+      <if test="indate != null">
+        indate = #{indate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="expireTime != null">
+        expire_time = #{expireTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.hssx.model.WeiboParam">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Sep 24 11:05:35 CST 2019.
+    -->
+    update weibo_param
+    set jsapi_ticket = #{jsapiTicket,jdbcType=VARCHAR},
+      indate = #{indate,jdbcType=TIMESTAMP},
+      expire_time = #{expireTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>

+ 99 - 0
minigame/src/com/hssx/model/WeiboParam.java

@@ -0,0 +1,99 @@
+package com.hssx.model;
+
+import java.util.Date;
+
+public class WeiboParam {
+
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column weibo_param.id
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	private Integer id;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column weibo_param.jsapi_ticket
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	private String jsapiTicket;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column weibo_param.indate
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	private Date indate;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column weibo_param.expire_time
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	private Date expireTime;
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column weibo_param.id
+	 * @return  the value of weibo_param.id
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public Integer getId() {
+		return id;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column weibo_param.id
+	 * @param id  the value for weibo_param.id
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column weibo_param.jsapi_ticket
+	 * @return  the value of weibo_param.jsapi_ticket
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public String getJsapiTicket() {
+		return jsapiTicket;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column weibo_param.jsapi_ticket
+	 * @param jsapiTicket  the value for weibo_param.jsapi_ticket
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public void setJsapiTicket(String jsapiTicket) {
+		this.jsapiTicket = jsapiTicket;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column weibo_param.indate
+	 * @return  the value of weibo_param.indate
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public Date getIndate() {
+		return indate;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column weibo_param.indate
+	 * @param indate  the value for weibo_param.indate
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public void setIndate(Date indate) {
+		this.indate = indate;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column weibo_param.expire_time
+	 * @return  the value of weibo_param.expire_time
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public Date getExpireTime() {
+		return expireTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column weibo_param.expire_time
+	 * @param expireTime  the value for weibo_param.expire_time
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public void setExpireTime(Date expireTime) {
+		this.expireTime = expireTime;
+	}
+}

+ 512 - 0
minigame/src/com/hssx/model/WeiboParamExample.java

@@ -0,0 +1,512 @@
+package com.hssx.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class WeiboParamExample {
+    /**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	protected String orderByClause;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	protected boolean distinct;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	protected List<Criteria> oredCriteria;
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public WeiboParamExample() {
+		oredCriteria = new ArrayList<Criteria>();
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public void setOrderByClause(String orderByClause) {
+		this.orderByClause = orderByClause;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public String getOrderByClause() {
+		return orderByClause;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public void setDistinct(boolean distinct) {
+		this.distinct = distinct;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public boolean isDistinct() {
+		return distinct;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public List<Criteria> getOredCriteria() {
+		return oredCriteria;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public void or(Criteria criteria) {
+		oredCriteria.add(criteria);
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public Criteria or() {
+		Criteria criteria = createCriteriaInternal();
+		oredCriteria.add(criteria);
+		return criteria;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public Criteria createCriteria() {
+		Criteria criteria = createCriteriaInternal();
+		if (oredCriteria.size() == 0) {
+			oredCriteria.add(criteria);
+		}
+		return criteria;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	protected Criteria createCriteriaInternal() {
+		Criteria criteria = new Criteria();
+		return criteria;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public void clear() {
+		oredCriteria.clear();
+		orderByClause = null;
+		distinct = false;
+	}
+
+	/**
+	 * This class was generated by MyBatis Generator. This class corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	protected abstract static class GeneratedCriteria {
+		protected List<Criterion> criteria;
+
+		protected GeneratedCriteria() {
+			super();
+			criteria = new ArrayList<Criterion>();
+		}
+
+		public boolean isValid() {
+			return criteria.size() > 0;
+		}
+
+		public List<Criterion> getAllCriteria() {
+			return criteria;
+		}
+
+		public List<Criterion> getCriteria() {
+			return criteria;
+		}
+
+		protected void addCriterion(String condition) {
+			if (condition == null) {
+				throw new RuntimeException("Value for condition cannot be null");
+			}
+			criteria.add(new Criterion(condition));
+		}
+
+		protected void addCriterion(String condition, Object value, String property) {
+			if (value == null) {
+				throw new RuntimeException("Value for " + property + " cannot be null");
+			}
+			criteria.add(new Criterion(condition, value));
+		}
+
+		protected void addCriterion(String condition, Object value1, Object value2, String property) {
+			if (value1 == null || value2 == null) {
+				throw new RuntimeException("Between values for " + property + " cannot be null");
+			}
+			criteria.add(new Criterion(condition, value1, value2));
+		}
+
+		public Criteria andIdIsNull() {
+			addCriterion("id is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdIsNotNull() {
+			addCriterion("id is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdEqualTo(Integer value) {
+			addCriterion("id =", value, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdNotEqualTo(Integer value) {
+			addCriterion("id <>", value, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdGreaterThan(Integer value) {
+			addCriterion("id >", value, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+			addCriterion("id >=", value, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdLessThan(Integer value) {
+			addCriterion("id <", value, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdLessThanOrEqualTo(Integer value) {
+			addCriterion("id <=", value, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdIn(List<Integer> values) {
+			addCriterion("id in", values, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdNotIn(List<Integer> values) {
+			addCriterion("id not in", values, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdBetween(Integer value1, Integer value2) {
+			addCriterion("id between", value1, value2, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andIdNotBetween(Integer value1, Integer value2) {
+			addCriterion("id not between", value1, value2, "id");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketIsNull() {
+			addCriterion("jsapi_ticket is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketIsNotNull() {
+			addCriterion("jsapi_ticket is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketEqualTo(String value) {
+			addCriterion("jsapi_ticket =", value, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketNotEqualTo(String value) {
+			addCriterion("jsapi_ticket <>", value, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketGreaterThan(String value) {
+			addCriterion("jsapi_ticket >", value, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketGreaterThanOrEqualTo(String value) {
+			addCriterion("jsapi_ticket >=", value, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketLessThan(String value) {
+			addCriterion("jsapi_ticket <", value, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketLessThanOrEqualTo(String value) {
+			addCriterion("jsapi_ticket <=", value, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketLike(String value) {
+			addCriterion("jsapi_ticket like", value, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketNotLike(String value) {
+			addCriterion("jsapi_ticket not like", value, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketIn(List<String> values) {
+			addCriterion("jsapi_ticket in", values, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketNotIn(List<String> values) {
+			addCriterion("jsapi_ticket not in", values, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketBetween(String value1, String value2) {
+			addCriterion("jsapi_ticket between", value1, value2, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andJsapiTicketNotBetween(String value1, String value2) {
+			addCriterion("jsapi_ticket not between", value1, value2, "jsapiTicket");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateIsNull() {
+			addCriterion("indate is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateIsNotNull() {
+			addCriterion("indate is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateEqualTo(Date value) {
+			addCriterion("indate =", value, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateNotEqualTo(Date value) {
+			addCriterion("indate <>", value, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateGreaterThan(Date value) {
+			addCriterion("indate >", value, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateGreaterThanOrEqualTo(Date value) {
+			addCriterion("indate >=", value, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateLessThan(Date value) {
+			addCriterion("indate <", value, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateLessThanOrEqualTo(Date value) {
+			addCriterion("indate <=", value, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateIn(List<Date> values) {
+			addCriterion("indate in", values, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateNotIn(List<Date> values) {
+			addCriterion("indate not in", values, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateBetween(Date value1, Date value2) {
+			addCriterion("indate between", value1, value2, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andIndateNotBetween(Date value1, Date value2) {
+			addCriterion("indate not between", value1, value2, "indate");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeIsNull() {
+			addCriterion("expire_time is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeIsNotNull() {
+			addCriterion("expire_time is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeEqualTo(Date value) {
+			addCriterion("expire_time =", value, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeNotEqualTo(Date value) {
+			addCriterion("expire_time <>", value, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeGreaterThan(Date value) {
+			addCriterion("expire_time >", value, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeGreaterThanOrEqualTo(Date value) {
+			addCriterion("expire_time >=", value, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeLessThan(Date value) {
+			addCriterion("expire_time <", value, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeLessThanOrEqualTo(Date value) {
+			addCriterion("expire_time <=", value, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeIn(List<Date> values) {
+			addCriterion("expire_time in", values, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeNotIn(List<Date> values) {
+			addCriterion("expire_time not in", values, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeBetween(Date value1, Date value2) {
+			addCriterion("expire_time between", value1, value2, "expireTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andExpireTimeNotBetween(Date value1, Date value2) {
+			addCriterion("expire_time not between", value1, value2, "expireTime");
+			return (Criteria) this;
+		}
+	}
+
+	/**
+	 * This class was generated by MyBatis Generator. This class corresponds to the database table weibo_param
+	 * @mbg.generated  Tue Sep 24 11:05:35 CST 2019
+	 */
+	public static class Criterion {
+		private String condition;
+		private Object value;
+		private Object secondValue;
+		private boolean noValue;
+		private boolean singleValue;
+		private boolean betweenValue;
+		private boolean listValue;
+		private String typeHandler;
+
+		public String getCondition() {
+			return condition;
+		}
+
+		public Object getValue() {
+			return value;
+		}
+
+		public Object getSecondValue() {
+			return secondValue;
+		}
+
+		public boolean isNoValue() {
+			return noValue;
+		}
+
+		public boolean isSingleValue() {
+			return singleValue;
+		}
+
+		public boolean isBetweenValue() {
+			return betweenValue;
+		}
+
+		public boolean isListValue() {
+			return listValue;
+		}
+
+		public String getTypeHandler() {
+			return typeHandler;
+		}
+
+		protected Criterion(String condition) {
+			super();
+			this.condition = condition;
+			this.typeHandler = null;
+			this.noValue = true;
+		}
+
+		protected Criterion(String condition, Object value, String typeHandler) {
+			super();
+			this.condition = condition;
+			this.value = value;
+			this.typeHandler = typeHandler;
+			if (value instanceof List<?>) {
+				this.listValue = true;
+			} else {
+				this.singleValue = true;
+			}
+		}
+
+		protected Criterion(String condition, Object value) {
+			this(condition, value, null);
+		}
+
+		protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+			super();
+			this.condition = condition;
+			this.value = value;
+			this.secondValue = secondValue;
+			this.typeHandler = typeHandler;
+			this.betweenValue = true;
+		}
+
+		protected Criterion(String condition, Object value, Object secondValue) {
+			this(condition, value, secondValue, null);
+		}
+	}
+
+	/**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table weibo_param
+     *
+     * @mbg.generated do_not_delete_during_merge Tue Sep 24 10:57:31 CST 2019
+     */
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+}

+ 26 - 4
minigame/src/com/hssx/utils/WechatAndMicroblogUtil.java

@@ -1,12 +1,16 @@
 package com.hssx.utils;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-
-import java.util.Date;
+import java.io.IOException;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
 
 import org.apache.commons.lang.StringEscapeUtils;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.hssx.constant.Constant;
+
 /**
  * Author: 吴涛涛 cuiyi@itany.com
  * Date : 2019 - 09 - 17 10:02
@@ -29,4 +33,22 @@ public class WechatAndMicroblogUtil {
         }
         return wechatUserNews;
     }
+    
+    public static JSONObject getWeiboSign() {
+    	String url = "https://api.weibo.com/oauth2/js_ticket/generate?client_id=APPKEY&client_secret=APPSECRET";
+    	url = url.replaceAll("APPKEY", Constant.MICROBLOG_APPKEY);
+    	url = url.replaceAll("APPSECRET", Constant.MICROBLOG_APPSECRET);
+    	try {
+			String resp = HttpKit.post(url, "");
+			System.out.println("resp=" + resp);
+			return JSONObject.parseObject(resp);
+		} catch (KeyManagementException | NoSuchAlgorithmException | NoSuchProviderException | IOException e) {
+			e.printStackTrace();
+		}
+    	return null;
+    }
+    
+    public static void main(String[] args) {
+    	getWeiboSign();
+    }
 }