// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/util/JsonRtnUtil.java
// public class JsonRtnUtil {
//     private static final String WECHAT_GLOBAL_MESSAGE_FILE_NAME = "wechate-global-message";
//     private static final String WECHAT_JSON_RTN_SUCCESS_CODE = "0";
//     private static ResourceBundle bundle;
// 
//     static {
//         try {
//             bundle = ResourceBundle.getBundle(WECHAT_GLOBAL_MESSAGE_FILE_NAME);
//         } catch (Exception e) {
//         }
//     }
// 
//     /**
//      * parse json text to specified class
//      *
//      * @param jsonRtn
//      * @param jsonRtnClazz
//      * @return
//      */
//     public static <T extends JsonRtn> T parseJsonRtn(String jsonRtn, Class<T> jsonRtnClazz) {
//         T rtn = JSONObject.parseObject(jsonRtn, jsonRtnClazz);
//         appendErrorHumanMsg(rtn);
//         return rtn;
//     }
// 
//     /**
//      * append human message to JsonRtn class
//      *
//      * @param jsonRtn
//      * @return
//      */
//     private static JsonRtn appendErrorHumanMsg(JsonRtn jsonRtn) {
//         if (bundle == null || jsonRtn == null || StringUtils.isEmpty(jsonRtn.getErrCode())) {
//             return null;
//         }
// 
//         try {
//             jsonRtn.setErrHumanMsg(bundle.getString(jsonRtn.getErrCode()));
//             return jsonRtn;
//         } catch (Exception e) {
//             return null;
//         }
//     }
// 
//     /**
//      * return request is success by JsonRtn object
//      *
//      * @param jsonRtn
//      * @return
//      */
//     public static boolean isSuccess(JsonRtn jsonRtn) {
//         if (jsonRtn == null) {
//             return false;
//         }
// 
//         String errCode = jsonRtn.getErrCode();
//         if (StringUtils.isEmpty(errCode) || StringUtils.equals(WECHAT_JSON_RTN_SUCCESS_CODE, errCode)) {
//             return true;
//         }
// 
//         return false;
//     }
// 
//     public static <T extends JsonRtn> T buildFailureJsonRtn(Class<T> jsonRtnClazz, String errMsg) {
//         try {
//             T jsonRtn = jsonRtnClazz.newInstance();
//             jsonRtn.setErrCode("-1");
//             jsonRtn.setErrMsg(errMsg);
// 
//             appendErrorHumanMsg(jsonRtn);
// 
//             return jsonRtn;
//         } catch (Exception e) {
//             return null;
//         }
//     }
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/qrcode/QRcodeTicketJsonRtn.java
// public class QRcodeTicketJsonRtn extends JsonRtn {
//     @JSONField(name = "ticket")
//     private String ticket;
// 
//     @JSONField(name = "expire_seconds")
//     private int expireSeconds = -1;
// 
//     public QRcodeTicketJsonRtn() {
//     }
// 
//     public String getTicket() {
//         return ticket;
//     }
// 
//     public void setTicket(String ticket) {
//         this.ticket = ticket;
//     }
// 
//     public int getExpireSeconds() {
//         return expireSeconds;
//     }
// 
//     public void setExpireSeconds(int expireSeconds) {
//         this.expireSeconds = expireSeconds;
//     }
// 
// }


import org.usc.wechat.mp.sdk.util.JsonRtnUtil;
import org.usc.wechat.mp.sdk.vo.qrcode.QRcodeTicketJsonRtn;
package org.usc.wechat.mp.sdk.util.platform;


/**
 *
 * @author Shunli
 */
public class QRcodeUtilTest {
    public static void main(String[] args) {
        QRcodeTicketJsonRtn jsonRtn = QRcodeUtil.createPermanentQRcode(Constants.LICENSE, 1);
        handleTicket(jsonRtn);

        jsonRtn = QRcodeUtil.createTemporaryQRcode(Constants.LICENSE, 2, 1800);
        handleTicket(jsonRtn);
    }

// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/util/JsonRtnUtil.java
// public class JsonRtnUtil {
//     private static final String WECHAT_GLOBAL_MESSAGE_FILE_NAME = "wechate-global-message";
//     private static final String WECHAT_JSON_RTN_SUCCESS_CODE = "0";
//     private static ResourceBundle bundle;
// 
//     static {
//         try {
//             bundle = ResourceBundle.getBundle(WECHAT_GLOBAL_MESSAGE_FILE_NAME);
//         } catch (Exception e) {
//         }
//     }
// 
//     /**
//      * parse json text to specified class
//      *
//      * @param jsonRtn
//      * @param jsonRtnClazz
//      * @return
//      */
//     public static <T extends JsonRtn> T parseJsonRtn(String jsonRtn, Class<T> jsonRtnClazz) {
//         T rtn = JSONObject.parseObject(jsonRtn, jsonRtnClazz);
//         appendErrorHumanMsg(rtn);
//         return rtn;
//     }
// 
//     /**
//      * append human message to JsonRtn class
//      *
//      * @param jsonRtn
//      * @return
//      */
//     private static JsonRtn appendErrorHumanMsg(JsonRtn jsonRtn) {
//         if (bundle == null || jsonRtn == null || StringUtils.isEmpty(jsonRtn.getErrCode())) {
//             return null;
//         }
// 
//         try {
//             jsonRtn.setErrHumanMsg(bundle.getString(jsonRtn.getErrCode()));
//             return jsonRtn;
//         } catch (Exception e) {
//             return null;
//         }
//     }
// 
//     /**
//      * return request is success by JsonRtn object
//      *
//      * @param jsonRtn
//      * @return
//      */
//     public static boolean isSuccess(JsonRtn jsonRtn) {
//         if (jsonRtn == null) {
//             return false;
//         }
// 
//         String errCode = jsonRtn.getErrCode();
//         if (StringUtils.isEmpty(errCode) || StringUtils.equals(WECHAT_JSON_RTN_SUCCESS_CODE, errCode)) {
//             return true;
//         }
// 
//         return false;
//     }
// 
//     public static <T extends JsonRtn> T buildFailureJsonRtn(Class<T> jsonRtnClazz, String errMsg) {
//         try {
//             T jsonRtn = jsonRtnClazz.newInstance();
//             jsonRtn.setErrCode("-1");
//             jsonRtn.setErrMsg(errMsg);
// 
//             appendErrorHumanMsg(jsonRtn);
// 
//             return jsonRtn;
//         } catch (Exception e) {
//             return null;
//         }
//     }
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/qrcode/QRcodeTicketJsonRtn.java
// public class QRcodeTicketJsonRtn extends JsonRtn {
//     @JSONField(name = "ticket")
//     private String ticket;
// 
//     @JSONField(name = "expire_seconds")
//     private int expireSeconds = -1;
// 
//     public QRcodeTicketJsonRtn() {
//     }
// 
//     public String getTicket() {
//         return ticket;
//     }
// 
//     public void setTicket(String ticket) {
//         this.ticket = ticket;
//     }
// 
//     public int getExpireSeconds() {
//         return expireSeconds;
//     }
// 
//     public void setExpireSeconds(int expireSeconds) {
//         this.expireSeconds = expireSeconds;
//     }
// 
// }


// Path: wechat-mp-sdk/src/test/java/org/usc/wechat/mp/sdk/util/platform/QRcodeUtilTest.java
import org.usc.wechat.mp.sdk.util.JsonRtnUtil;
import org.usc.wechat.mp.sdk.vo.qrcode.QRcodeTicketJsonRtn;

package org.usc.wechat.mp.sdk.util.platform;


/**
 *
 * @author Shunli
 */
public class QRcodeUtilTest {
    public static void main(String[] args) {
        QRcodeTicketJsonRtn jsonRtn = QRcodeUtil.createPermanentQRcode(Constants.LICENSE, 1);
        handleTicket(jsonRtn);

        jsonRtn = QRcodeUtil.createTemporaryQRcode(Constants.LICENSE, 2, 1800);
        handleTicket(jsonRtn);
    }

    private static void handleTicket(QRcodeTicketJsonRtn jsonRtn) {