DingtalkServiceImpl.java 2.32 KB
package com.chinagas.modules.schsf.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.chinagas.common.core.exceptions.ServiceException;
import com.chinagas.modules.schsf.constant.DingtalkConstant;
import com.chinagas.modules.schsf.exception.OApiException;
import com.chinagas.modules.schsf.service.DingtalkService;
import com.dingtalk.oapi.lib.aes.DingTalkJsApiSingnature;
import com.dingtalk.open.client.ServiceFactory;
import com.dingtalk.open.client.api.model.corp.JsapiTicket;
import com.dingtalk.open.client.api.service.corp.CorpConnectionService;
import com.dingtalk.open.client.api.service.corp.JsapiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.security.MessageDigest;
import java.util.Formatter;

@Service
public class DingtalkServiceImpl implements DingtalkService {

    @Autowired
    private DingtalkConstant dingtalkConstant;

    @Override
    public String getAccessToken() {
        String accToken = "";
        JSONObject jsontemp = new JSONObject();
        try {
            ServiceFactory serviceFactory = ServiceFactory.getInstance();
            CorpConnectionService corpConnectionService = serviceFactory.getOpenService(CorpConnectionService.class);
            accToken = corpConnectionService.getCorpToken(dingtalkConstant.getAppKey(), dingtalkConstant.getAppSecret());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return accToken;
    }

    @Override
    public String getJsapiTicket(String accessToken) {
        String jsTicket = "";
        ServiceFactory serviceFactory;
        try {
            serviceFactory = ServiceFactory.getInstance();
            JsapiService jsapiService = serviceFactory.getOpenService(JsapiService.class);
            JsapiTicket JsapiTicket = jsapiService.getJsapiTicket(accessToken, "jsapi");
            jsTicket = JsapiTicket.getTicket();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsTicket;
    }

    @Override
    public String getSign(String ticket, String nonceStr, Long timeStamp, String url) {
        try {
            return DingTalkJsApiSingnature.getJsApiSingnature(url, nonceStr, timeStamp, ticket);
        } catch (Exception ex) {
            throw new ServiceException(ex.getMessage());
        }
    }





}