AccessTokenServiceImpl.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.ruixuan.isc.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.kuaishou.merchant.open.api.KsMerchantApiException;
  5. import com.kuaishou.merchant.open.api.client.oauth.OauthAccessTokenKsClient;
  6. import com.kuaishou.merchant.open.api.client.oauth.OauthCredentialKsClient;
  7. import com.kuaishou.merchant.open.api.response.oauth.KsAccessTokenResponse;
  8. import com.kuaishou.merchant.open.api.response.oauth.KsCredentialResponse;
  9. import com.ruixuan.common.utils.Check;
  10. import com.ruixuan.common.utils.RedisUtil;
  11. import com.ruixuan.isc.entity.KuaishouAccessToken;
  12. import com.ruixuan.isc.mapper.AccessTokenMapper;
  13. import com.ruixuan.isc.service.IAccessTokenService;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.util.List;
  18. @Slf4j
  19. @Service
  20. public class AccessTokenServiceImpl implements IAccessTokenService {
  21. @Autowired
  22. private AccessTokenMapper accessTokenMapper;
  23. @Override
  24. public String getAccessToken() {
  25. return accessTokenMapper.getAccessToken();
  26. }
  27. @Override
  28. public void refreshAccessToken() {
  29. List<KuaishouAccessToken> tokens = accessTokenMapper.getTokenInfos();
  30. if (!Check.isNull(tokens)) {
  31. for (KuaishouAccessToken token : tokens) {
  32. String appKey = token.getAppKey();
  33. String appSecret = token.getAppSecret();
  34. String refreshToken = token.getRefreshToken();
  35. OauthAccessTokenKsClient oauthAccessTokenKsClient = new OauthAccessTokenKsClient(appKey, appSecret);
  36. try {
  37. KsAccessTokenResponse response = oauthAccessTokenKsClient.refreshAccessToken(refreshToken);
  38. JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(response));
  39. log.info("刷新token,id:{},返回结果:{}",token.getId(),jsonObject);
  40. if(jsonObject.getInteger("result") == 1){
  41. KuaishouAccessToken updateToken = new KuaishouAccessToken();
  42. updateToken.setId(token.getId());
  43. updateToken.setAccessToken(jsonObject.getString("accessToken"));
  44. updateToken.setRefreshToken(jsonObject.getString("refreshToken"));
  45. accessTokenMapper.update(updateToken);
  46. }
  47. } catch (KsMerchantApiException e) {
  48. e.printStackTrace();
  49. }
  50. }
  51. }
  52. }
  53. }