public WechatQRCode qrCodeCreate(Integer expireSeconds, QRCodeCreateActionName actionName, int sceneId) {
        if (QRCodeCreateActionName.QR_SCENE == actionName) {
            if (expireSeconds == null || expireSeconds < 1 || expireSeconds > 1800) {
                throw new IllegalArgumentException("expireSeconds must between 1 to 1800");
            }
        }

        if (sceneId < 1 || sceneId > 100000) {
            throw new IllegalArgumentException("sceneId must between 1 to 100000");
        }

        ClientConfig config = new DefaultClientConfig();
        Client client = Client.create(config);
        WebResource webResource = client.resource("https://api.weixin.qq.com/cgi-bin/qrcode/create");
        ClientResponse clientResponse;
        Map data = new QRCodeBuilder(actionName).expireSeconds(expireSeconds).sceneId(sceneId).bulid();
        logger.debug("QRCode Post:{}", data.toString());
        clientResponse = webResource
                .queryParam("access_token", getAccessToken().getToken())
                .post(ClientResponse.class, new Gson().toJson(data));
        if (clientResponse.getStatus() != 200) {
            throw new IllegalStateException("status error:" + clientResponse.getStatus());
        } else {
            return gson.fromJson(clientResponse.getEntity(String.class), WechatQRCode.class);
        }
        //{"ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA==","expire_seconds":1800}
        //{"errcode":40013,"errmsg":"invalid appid"}
    }