/* * @(#)AcTokenServiceImpl.java * * @Copyright(c) 2015 All rights reserved. * */ package com.gustz.dove.cli.api.security.service.impl; import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Map; import com.gustz.dove.cli.api.account.service.impl.AccountService; import com.gustz.dove.cli.api.app.service.impl.ClientAppService; import com.gustz.dove.cli.api.service.conf.WebsUrlParam; import com.gustz.dove.cli.api.service.impl.AbstBaseService; import org.springframework.beans.factory.annotation.Autowired; import com.gustz.dove.cli.api.account.vo.AccountVo; import com.gustz.dove.cli.api.app.vo.ClientAppVo; import com.sinovatech.rd.wcsb.cli.api.security.req.AccessTokenReq; import com.sinovatech.rd.wcsb.cli.api.security.rsp.AccessTokenRsp; import com.sinovatech.rd.wcsb.cli.api.security.rsp.CallbackIpRsp; import com.sinovatech.rd.wcsb.cli.api.security.service.AcTokenService; import com.sinovatech.rd.wcsb.cli.api.security.service.EncryptService; import com.sinovatech.rd.wcsb.cli.api.service.BaseWebsUrl; /** * TODO: 接口凭证服务的接口实现 * * @author ZHENFENG ZHANG * @since [ Aug 4, 2015 ] */ public abstract class AcTokenServiceImpl extends AbstBaseService<AccessTokenReq> implements AcTokenService { @Autowired private ClientAppService clientAppService; @Autowired private AccountService accountService; @Autowired private EncryptService encryptService; /** * 获取接口凭证 * * @param websUrl * @param sn * @param cliAppCode * @param devAcCode 账号 * @return */ @Override public String getAccessToken(BaseWebsUrl websUrl, long sn, String cliAppCode, String devAcCode) { return this.getAccessTokenVo(websUrl, sn, cliAppCode, devAcCode).getBody().getAccessToken(); } /** * 获取接口凭证VO * * @param websUrl * @param sn * @param cliAppCode * @param devAcCode 账号 * @return */ @Override public AccessTokenRsp getAccessTokenVo(BaseWebsUrl websUrl, long sn, String cliAppCode, String devAcCode) { // 生成新的接口凭证 AccountVo accountVo = accountService.getByCaCode(cliAppCode, devAcCode); // 请求参数 Map<String, String> _paramMap = new HashMap<String, String>(); _paramMap.put(WebsUrlParam.APP_ID, accountVo.getWecAppId()); // 凭证 _paramMap.put(WebsUrlParam.APP_SECRET, accountVo.getWecAppSecret()); // 凭证密钥 this.setWebsUrlParamMap(_paramMap); // return this.httpGet(websUrl, sn, cliAppCode, new AccessTokenRsp(sn, websUrl.getWebsCode())); } /** * 获取微信服务器IP地址集 * * @param websUrl * @param sn * @param cliAppCode * @param devAcCode * @return */ @Override public CallbackIpRsp getCallbackIp(BaseWebsUrl websUrl, long sn, String cliAppCode, String devAcCode) { this.setAccessTokenX(sn, cliAppCode, devAcCode); // return this.httpGet(websUrl, sn, cliAppCode, new CallbackIpRsp(sn, websUrl.getWebsCode())); } /** * 获取当前接入的开发者凭证 * * <pre> * 状态为S99的客户端APP(唯一) * </pre> * @return * @throws NoSuchAlgorithmException */ @Override public String getCurrDevToken() throws NoSuchAlgorithmException { ClientAppVo vo = clientAppService.getCurrCliApp(); // return encryptService.getDevToken(vo.getAccountCode(), vo.getWecAppId()); } }