qihang-ecom-erp-open/tao-api/src/main/java/com/qihang/tao/controller/OAuthTaoCallbackController....

70 lines
2.3 KiB
Java

package com.qihang.tao.controller;
import com.qihang.tao.domain.SysPlatform;
import com.qihang.tao.service.SysPlatformService;
import com.qihang.tao.service.SysShopService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.IOException;
/**
* 淘宝回调地址
*/
@AllArgsConstructor
@Controller
public class OAuthTaoCallbackController {
private final SysPlatformService platformService;
private final SysShopService shopService;
private static Logger log = LoggerFactory.getLogger(OAuthTaoCallbackController.class);
/**
* 淘宝授权url
*
* @param shopId
* @return
* @throws IOException
* @throws InterruptedException
*/
@GetMapping("/taoapi2/tao_oauth")
public String aliOAuth(@RequestParam Integer shopId) throws IOException, InterruptedException {
//查询店铺信息
var shop = shopService.selectShopById(shopId);
SysPlatform platform = platformService.selectById(shop.getType());
// var entity = thirdSettingService.getEntity(shop.getType());
String url = "http://container.open.taobao.com/container?appkey=" + platform.getAppKey() + "&state=" + shopId;
//https://oauth.taobao.com/authorize?response_type=token&force_auth=true&from_site=fuwu&client_id=28181872
return "redirect:" + url;
}
/**
* 淘宝授权回调
* @param model
* @param request
* @return
*/
@RequestMapping("/taoapi2/callback")
public String callback(Model model, HttpServletRequest request) {
log.info("淘系店铺授权回调开始");
String sessionKey = request.getParameter("top_session");
String state = request.getParameter("state");
try {
Integer shopId = Integer.parseInt(state);
shopService.updateSessionKey(shopId, sessionKey);
return "redirect:/order/list?shopId=" + shopId;
} catch (Exception e) {
return "redirect:/?msg=callback_taobao_error";
}
}
}