diff --git a/pom.xml b/pom.xml
index 31d97a9..04ec948 100644
--- a/pom.xml
+++ b/pom.xml
@@ -243,20 +243,17 @@
shedlock-provider-redis-spring
4.44.0
-
com.douyin.openapi
sdk
1.0.6
+ system
+ ${project.basedir}/src/main/resources/lib/sdk-1.0.6.jar
+
-
-
- douyin-openapi-repo
- https://artifacts-cn-beijing.volces.com/repository/douyin-openapi/
-
-
+
@@ -275,6 +272,19 @@
*.yml
+
+ src/main/resources
+
+ **/*.jar
+
+ ${project.build.directory}/lib
+
+
+ src/main/resources
+
+ lib/**
+
+
@@ -310,6 +320,19 @@
true
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.4
+
+
+ package
+
+ shade
+
+
+
+
diff --git a/src/main/java/com/sczx/order/service/impl/DouyinServiceImpl.java b/src/main/java/com/sczx/order/service/impl/DouyinServiceImpl.java
index 4d5f55c..32aaba3 100644
--- a/src/main/java/com/sczx/order/service/impl/DouyinServiceImpl.java
+++ b/src/main/java/com/sczx/order/service/impl/DouyinServiceImpl.java
@@ -1,19 +1,40 @@
package com.sczx.order.service.impl;
+import com.aliyun.tea.TeaException;
+import com.douyin.openapi.client.Client;
+import com.douyin.openapi.client.models.*;
+import com.douyin.openapi.credential.models.Config;
+
+
+import com.sczx.order.config.DouyinTokenManager;
import com.sczx.order.exception.InnerException;
import com.sczx.order.service.DouyinService;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.net.HttpURLConnection;
import java.net.URL;
+import java.util.List;
@Slf4j
@Service
public class DouyinServiceImpl implements DouyinService {
+ @Value("${douyin.appId}")
+ private String CLIENT_KEY = "awomt6nnjlfc491m";
+
+ @Value("${douyin.appSecret}")
+ private String CLIENT_SECRET = "c678c411c7a68c6f97969f2dbd8ef8fc";
+
+ @Value("${douyin.appSecret}")
+ private String ACCOUNT_ID = "7442188302710065206";
+
+ @Value("${douyin.appSecret}")
+ private String POI_ID = "7442188302710065206";
+
@Transactional(rollbackFor = Exception.class)
@Override
public String resolveShortUrlToGetObjectId(String shortUrl) {
@@ -44,6 +65,54 @@ public class DouyinServiceImpl implements DouyinService {
throw new InnerException("扫码核销失败,二维码不正确");
}
+ }
+
+ public void Prepare(List orderIds) throws Exception {
+ // 获取当前有效的access_token
+ String accessToken = DouyinTokenManager.getCurrentToken();
+
+ if (accessToken == null || accessToken.isEmpty()) {
+ throw new RuntimeException("无法获取有效的access_token");
+ }
+
+ try {
+ Config config = new Config().setClientKey(CLIENT_KEY).setClientSecret(CLIENT_SECRET); // 改成自己的app_id跟secret
+ Client client = new Client(config);
+ /* 构建请求参数,该代码示例中只给出部分参数,请用户根据需要自行构建参数值
+ token:
+ 1.若用户自行维护token,将用户维护的token赋值给该参数即可
+ 2.SDK包中有获取token的函数,请根据接口path在《OpenAPI SDK 总览》文档中查找获取token函数的名字
+ 在使用过程中,请注意token互刷问题
+ header:
+ sdk中默认填充content-type请求头,若不需要填充除content-type之外的请求头,删除该参数即可
+ */
+ CertificatePrepareRequest sdkRequest = new CertificatePrepareRequest();
+ sdkRequest.setAccessToken(accessToken);
+ sdkRequest.setAccountId(ACCOUNT_ID);
+ sdkRequest.setCode("GB3ChSgXHc");
+ sdkRequest.setEncryptedData("9Q28CnUoEX");
+ sdkRequest.setPoiId("KY9n9WUFKe");
+ CertificatePrepareResponse sdkResponse = client.CertificatePrepare(sdkRequest);
+ processCertificatePrepareResponse(sdkResponse);
+ } catch (TeaException e) {
+ System.out.println(e.getMessage());
+
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+
+ }
+ }
+
+ public void processCertificatePrepareResponse(CertificatePrepareResponse response) {
+ String verifyToken = response.getData().getVerifyToken();
+
+ response.getData().getCertificates().forEach(certificate -> {
+ Long certificateId = certificate.getCertificateId();
+ String skuId =certificate.getSku().getSkuId() ;
+ certificate.getReserveInfo().getOrderReserveUserInfoList().forEach(orderReserveUserInfo -> {
+
+ });
+ });
}
diff --git a/src/main/resources/lib/sdk-1.0.6.jar b/src/main/resources/lib/sdk-1.0.6.jar
new file mode 100644
index 0000000..005ed02
Binary files /dev/null and b/src/main/resources/lib/sdk-1.0.6.jar differ