com.jfinal.weixin.sdk.api.JsTicket.java Source code

Java tutorial

Introduction

Here is the source code for com.jfinal.weixin.sdk.api.JsTicket.java

Source

/**
 * Copyright (c) 2011-2015, Ray Liu.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */

package com.jfinal.weixin.sdk.api;

import java.util.Map;

import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * ? ticket
 */
public class JsTicket {

    private String ticket; // ? ticket 
    private Integer expires_in; // ? access_token 
    private Integer errcode; // 
    private String errmsg; // 

    private Long expiredTime; // ? ticket 
    private String json;

    public JsTicket(String jsonStr) {
        this.json = jsonStr;

        try {
            @SuppressWarnings("rawtypes")
            Map map = new ObjectMapper().readValue(jsonStr, Map.class);
            ticket = (String) map.get("ticket");
            expires_in = (Integer) map.get("expires_in");
            errcode = (Integer) map.get("errcode");
            errmsg = (String) map.get("errmsg");

            if (expires_in != null)
                expiredTime = System.currentTimeMillis() + ((expires_in - 5) * 1000);

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public String getJson() {
        return json;
    }

    public boolean isAvailable() {
        if (expiredTime == null)
            return false;
        if (errcode != null && errcode > 0)
            return false;
        if (expiredTime < System.currentTimeMillis())
            return false;
        return ticket != null;
    }

    public String getJsTicket() {
        return ticket;
    }

    public Integer getExpiresIn() {
        return expires_in;
    }

    public Integer getErrorCode() {
        return errcode;
    }

    public String getErrorMsg() {
        if (errcode != null) {
            String result = ReturnCode.get(errcode);
            if (result != null)
                return result;
        }
        return errmsg;
    }
}