no message
This commit is contained in:
@ -1,7 +1,9 @@
|
||||
package com.sczx.order.controller;
|
||||
|
||||
import com.meituan.sdk.auth.MeituanTokenResponse;
|
||||
import com.sczx.order.common.Result;
|
||||
import com.sczx.order.service.DouyinService;
|
||||
import com.sczx.order.service.MeiTuanService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -19,26 +21,51 @@ public class VerifyController {
|
||||
@Autowired
|
||||
private DouyinService douyinService;
|
||||
|
||||
@ApiOperation(value = "接收需同步数据接口")
|
||||
@Autowired
|
||||
private MeiTuanService meituanService;
|
||||
|
||||
@ApiOperation(value = "接收美团Token数据接口")
|
||||
@GetMapping("/authorization")
|
||||
public String authorization(@RequestParam("code") String code, @RequestParam("sign") String sign, @RequestParam("developerId") Long developerId, @RequestParam("businessId") int businessId,
|
||||
@RequestParam("state") String state){
|
||||
public Result<String> authorization(@RequestParam("code") String code, @RequestParam("sign") String sign, @RequestParam("developerId") Long developerId, @RequestParam("businessId") int businessId,
|
||||
@RequestParam("state") String state){
|
||||
|
||||
log.info("接收美团授权数据 - code: {}, sign: {}, developerId: {}, businessId: {}, state: {}",
|
||||
code, sign, developerId, businessId, state);
|
||||
//接收code,记录state(门店编号)
|
||||
//MeituanTokenResponse response = meituanService.getAccessToken(code,state);
|
||||
|
||||
return code;
|
||||
return Result.ok(meituanService.getAccessToken(code,state));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "接收需据接口")
|
||||
@GetMapping("/prepare")
|
||||
public MeituanTokenResponse prepare(@RequestParam("code") String code) throws Exception {
|
||||
public MeituanTokenResponse prepare(@RequestParam("code") String code,@RequestParam("state") String state) throws Exception {
|
||||
|
||||
|
||||
MeituanTokenResponse response = douyinService.getAccessToken( code);
|
||||
MeituanTokenResponse response = meituanService.getAccessToken( code,state);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "接收需据接口")
|
||||
@GetMapping("/mtprepare")
|
||||
public MeituanTokenResponse mtprepare(@RequestParam("code") String code) throws Exception {
|
||||
|
||||
|
||||
MeituanTokenResponse response = meituanService.prepare( code);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "接收需据接口")
|
||||
@GetMapping("/consume")
|
||||
public MeituanTokenResponse consume(@RequestParam("code") String code) throws Exception {
|
||||
|
||||
|
||||
MeituanTokenResponse response = meituanService.prepare( code);
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,4 +12,6 @@ public interface DouyinService {
|
||||
void prepare(List<String> orderIds) throws Exception;
|
||||
|
||||
MeituanTokenResponse getAccessToken(String code);
|
||||
|
||||
MeituanTokenResponse prepare(String code);
|
||||
}
|
||||
|
||||
17
src/main/java/com/sczx/order/service/MeiTuanService.java
Normal file
17
src/main/java/com/sczx/order/service/MeiTuanService.java
Normal file
@ -0,0 +1,17 @@
|
||||
package com.sczx.order.service;
|
||||
|
||||
import com.meituan.sdk.MeituanResponse;
|
||||
import com.meituan.sdk.auth.MeituanTokenResponse;
|
||||
import com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptConsume.TuangouReceiptConsumeResponse;
|
||||
|
||||
public interface MeiTuanService {
|
||||
|
||||
MeituanTokenResponse getAccessToken(String code , String state);
|
||||
|
||||
MeituanTokenResponse prepare(String code);
|
||||
|
||||
MeituanResponse<TuangouReceiptConsumeResponse> consume(String code);
|
||||
|
||||
MeituanTokenResponse refreshAccessToken(String refreshToken);
|
||||
|
||||
}
|
||||
@ -9,8 +9,11 @@ import com.douyin.openapi.credential.models.Config;
|
||||
|
||||
import com.meituan.sdk.DefaultMeituanClient;
|
||||
import com.meituan.sdk.MeituanClient;
|
||||
import com.meituan.sdk.MeituanResponse;
|
||||
import com.meituan.sdk.auth.MeituanTokenResponse;
|
||||
import com.meituan.sdk.internal.utils.SignerUtil;
|
||||
import com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptPrepare.TuangouReceiptPrepareRequest;
|
||||
import com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptPrepare.TuangouReceiptPrepareResponse;
|
||||
import com.sczx.order.common.Result;
|
||||
import com.sczx.order.config.DouyinTokenManager;
|
||||
import com.sczx.order.exception.InnerException;
|
||||
@ -47,7 +50,9 @@ public class DouyinServiceImpl implements DouyinService {
|
||||
|
||||
private Long DeveloperId = 116997L;
|
||||
|
||||
private String Signkey = "n8xihtshk7t1luvi";
|
||||
private String Signkey = "n8xlhtshk7t1luvi";
|
||||
|
||||
private String accessToken = "V2-26b8d231854d3fdf6a5c06273377a65e441e4c9f1c8cea4959c510bf0dd19ed7657e34bebe4b74aa455b80d3c757cd8a66e3ece9148e6d6838778db5f9600cf383dbf89c0cc27f07f777c98649bd94fe";
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
@ -61,6 +66,8 @@ public class DouyinServiceImpl implements DouyinService {
|
||||
String longUrl = connection.getHeaderField("Location");
|
||||
connection.disconnect();
|
||||
|
||||
|
||||
|
||||
if (longUrl == null || longUrl.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
@ -148,6 +155,34 @@ public class DouyinServiceImpl implements DouyinService {
|
||||
return response;
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("获取access_token异常", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MeituanTokenResponse prepare(String code) {
|
||||
try {
|
||||
MeituanClient meituanClient = DefaultMeituanClient.builder(DeveloperId, Signkey).build();
|
||||
|
||||
TuangouReceiptPrepareRequest tuangouReceiptPrepareRequest = new TuangouReceiptPrepareRequest();
|
||||
|
||||
tuangouReceiptPrepareRequest.setReceiptCode("0107945394376");
|
||||
|
||||
String appAuthToken = accessToken;
|
||||
MeituanResponse<TuangouReceiptPrepareResponse> response = meituanClient.invokeApi(tuangouReceiptPrepareRequest, appAuthToken);
|
||||
|
||||
log.info("获取prepare响应结果: {}", JSONObject.toJSONString(response));
|
||||
if (response.isSuccess()) {
|
||||
TuangouReceiptPrepareResponse resp = response.getData();
|
||||
System.out.println(resp);
|
||||
} else {
|
||||
System.out.println("调用失败");
|
||||
}
|
||||
return null;
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("获取access_token异常", e);
|
||||
return null;
|
||||
|
||||
@ -0,0 +1,133 @@
|
||||
package com.sczx.order.service.impl;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.meituan.sdk.DefaultMeituanClient;
|
||||
import com.meituan.sdk.MeituanClient;
|
||||
import com.meituan.sdk.MeituanResponse;
|
||||
import com.meituan.sdk.auth.MeituanTokenResponse;
|
||||
import com.meituan.sdk.internal.exceptions.MtSdkException;
|
||||
import com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptConsume.TuangouReceiptConsumeRequest;
|
||||
import com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptConsume.TuangouReceiptConsumeResponse;
|
||||
import com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptPrepare.TuangouReceiptPrepareRequest;
|
||||
import com.meituan.sdk.model.ddzh.tuangou.tuangouReceiptPrepare.TuangouReceiptPrepareResponse;
|
||||
import com.sczx.order.exception.BizException;
|
||||
import com.sczx.order.service.MeiTuanService;
|
||||
import com.sczx.order.thirdpart.integration.StoreInteg;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class MeiTuanServiceImpl implements MeiTuanService {
|
||||
|
||||
|
||||
private Long DeveloperId = 116997L;
|
||||
|
||||
private String Signkey = "n8xlhtshk7t1luvi";
|
||||
|
||||
//private String accessToken = "V2-26b8d231854d3fdf6a5c06273377a65e441e4c9f1c8cea4959c510bf0dd19ed7657e34bebe4b74aa455b80d3c757cd8a66e3ece9148e6d6838778db5f9600cf383dbf89c0cc27f07f777c98649bd94fe";
|
||||
|
||||
private String accessToken = "V2-549da132ffebe5ce5731a17ae166cb899e13c579900d6cbc4163b60e4d40440ccbe8e56d25c3341cd1003c5529c407085c06af2eb41d2d091353b4d2be6f887582d9d4bf247cf9a511581ad46ade47e8";
|
||||
|
||||
@Autowired
|
||||
private StoreInteg storeInteg;
|
||||
|
||||
@Override
|
||||
public MeituanTokenResponse getAccessToken(String code, String state) {
|
||||
try {
|
||||
// 使用美团SDK构建客户端
|
||||
MeituanClient client = DefaultMeituanClient.builder(DeveloperId, Signkey).build();
|
||||
|
||||
|
||||
// 使用美团SDK的getOAuthToken方法获取token
|
||||
//MeituanTokenResponse response = client.getOAuthToken(58, code);
|
||||
|
||||
|
||||
//log.info("获取access_token响应结果: {}", JSONObject.toJSONString(response));
|
||||
//String token = response.getData().getAccessToken();
|
||||
|
||||
storeInteg.recordToken(state, accessToken);
|
||||
|
||||
return null;
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new BizException("订单不存在");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MeituanTokenResponse prepare(String code) {
|
||||
try {
|
||||
MeituanClient meituanClient = DefaultMeituanClient.builder(DeveloperId, Signkey).build();
|
||||
|
||||
TuangouReceiptPrepareRequest tuangouReceiptPrepareRequest = new TuangouReceiptPrepareRequest();
|
||||
|
||||
tuangouReceiptPrepareRequest.setReceiptCode("0106972239359");
|
||||
|
||||
String appAuthToken = accessToken;
|
||||
MeituanResponse<TuangouReceiptPrepareResponse> response = meituanClient.invokeApi(tuangouReceiptPrepareRequest, appAuthToken);
|
||||
|
||||
log.info("获取access_token响应结果: {}", JSONObject.toJSONString(response));
|
||||
|
||||
if (response.isSuccess()) {
|
||||
TuangouReceiptPrepareResponse resp = response.getData();
|
||||
System.out.println(resp);
|
||||
} else {
|
||||
System.out.println("调用失败");
|
||||
}
|
||||
return null;
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("获取access_token异常", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public MeituanTokenResponse refreshAccessToken(String refreshToken) {
|
||||
try {
|
||||
MeituanClient meituanClient = DefaultMeituanClient.builder(DeveloperId, Signkey).build();
|
||||
|
||||
MeituanTokenResponse response = meituanClient.refreshToken(58, refreshToken);
|
||||
|
||||
return response;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("获取access_token异常", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MeituanResponse<TuangouReceiptConsumeResponse> consume (String code) {
|
||||
try {
|
||||
MeituanClient meituanClient = DefaultMeituanClient.builder(DeveloperId, Signkey).build();
|
||||
|
||||
TuangouReceiptConsumeRequest tuangouReceiptConsumeRequest = new TuangouReceiptConsumeRequest();
|
||||
|
||||
tuangouReceiptConsumeRequest.setReceiptCode("0106972239359");
|
||||
tuangouReceiptConsumeRequest.setCount(1);
|
||||
tuangouReceiptConsumeRequest.setRequestId("fdae143414");
|
||||
tuangouReceiptConsumeRequest.setAppShopAccountName("customer");
|
||||
tuangouReceiptConsumeRequest.setAppShopAccount("customer");
|
||||
|
||||
|
||||
String appAuthToken = accessToken;
|
||||
MeituanResponse<TuangouReceiptConsumeResponse> response = meituanClient.invokeApi(tuangouReceiptConsumeRequest, appAuthToken);
|
||||
|
||||
log.info("获取access_token响应结果: {}", JSONObject.toJSONString(response));
|
||||
return response;
|
||||
} catch (MtSdkException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -36,4 +36,7 @@ public interface StoreFacade {
|
||||
|
||||
@PostMapping("/wallet/distibIncome")
|
||||
Result<Boolean> distibIncome(@RequestBody DistibIncomeReq distibIncomeReq);
|
||||
|
||||
@PostMapping("/store/recordToken")
|
||||
Result<Boolean> recordToken(@RequestParam(name = "storeNumber") String storeNumber, @RequestParam(name = "token") String token);
|
||||
}
|
||||
|
||||
@ -106,4 +106,17 @@ public class StoreInteg {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean recordToken(String storeNumber, String token){
|
||||
try{
|
||||
Result<Boolean> result = storeFacade.recordToken(storeNumber, token);
|
||||
if(result.isSuccess()){
|
||||
return result.getData();
|
||||
}
|
||||
} catch (Exception e){
|
||||
log.error("记录门店token失败",e);
|
||||
throw new InnerException("记录门店token失败");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user