微信生成带参二维码

 /** 

     * 
     * 功能描述: <br>
     * 生成微信二维码的ticket
     * 
     * @param appId
     * @param appsecret
     * @param sceneId
     * @return
     * @see [相关类/方法](可选)

     * @since [产品/模块版本](可选)

    *本次使用的临时二维码

     */
    public QrcodeReturn getQrcodeReturn(String appId, String appsecret, String sceneId) {
        QrcodeReturn qrcodeReturn = null;
        AccessTokenBean bean = accessTokenService.queryAccessToken(1);//获取临时二维码的sceneid与用户的关系,可以定位到对应用户(对应这张表中的id需要循环增加)
        AccessToken accessToken = null;
        String token = "";
        if(bean != null){
            if(StringUtils.isNotBlank(bean.getAccessToken())){
                token = bean.getAccessToken();
                System.out.println("token--------------"+token);
            }else{
                accessToken = getAccessToken(appId, appsecret);
                System.out.println("bean is not null accessToken-------------"+accessToken);
            }
            
        }else{
            accessToken = getAccessToken(appId, appsecret);
            System.out.println("accessToken-------------"+accessToken);
        }
        if (accessToken != null) {
            token = accessToken.getToken();
            AccessTokenBean accessTokenBean = new AccessTokenBean();
            accessTokenBean.setAccessToken(token);
            accessTokenBean.setId(1);
            accessTokenService.updateAccessToken(accessTokenBean);
            System.out.println("update accessToken table----------token:"+token);
        }
        String requestUrl = qrcode_create_url.replace("TOKEN", token);
        String jsonAction = "{\"expire_seconds\": 1800, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": "
                + Integer.parseInt(sceneId) + "}}}";
        
        // 转换成json字符串
        JSONObject jsonObject = httpRequest(requestUrl, "POST", jsonAction);
        
        if (null != jsonObject) {
            qrcodeReturn = new QrcodeReturn();
            if(jsonObject.get("errcode") != null){
                System.out.println("exception------------------");
                accessToken = getAccessToken(appId, appsecret);
                System.out.println("exception------------------accessToken:"+accessToken);
                if (accessToken != null) {
                    token = accessToken.getToken();
                    AccessTokenBean accessTokenBean = new AccessTokenBean();
                    accessTokenBean.setAccessToken(token);
                    accessTokenBean.setId(1);
                    accessTokenService.updateAccessToken(accessTokenBean);
                    System.out.println("exception update accessToken table----------token:"+token);
                }
                String requestUrl1 = qrcode_create_url.replace("TOKEN", token);
                
                // 转换成json字符串
                JSONObject jsonObject1 = httpRequest(requestUrl1, "POST", jsonAction);
                qrcodeReturn.setTicket(jsonObject1.getString("ticket"));
                System.out.println("ticket---------------:"+jsonObject1.getString("ticket"));
                return qrcodeReturn;
            }
            
            qrcodeReturn.setTicket(jsonObject.getString("ticket"));
        }


        return qrcodeReturn;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值