增加了 payapi-sdk
diff --git a/common/build.gradle b/common/build.gradle
index c5ae67d..88e5750 100644
--- a/common/build.gradle
+++ b/common/build.gradle
@@ -6,6 +6,7 @@
implementation 'org.slf4j:slf4j-parent:1.7.26'
implementation 'org.slf4j:slf4j-api:1.7.26'
implementation 'javax.validation:validation-api:2.0.1.Final'
+ implementation 'javax.servlet:javax.servlet-api:4.0.1'
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
diff --git a/config/application-devel-pg-local.properties b/config/application-devel-pg-local.properties
index fb8bfc2..6fa530b 100644
--- a/config/application-devel-pg-local.properties
+++ b/config/application-devel-pg-local.properties
@@ -12,7 +12,7 @@
spring.datasource.password=123456
database.dbtype=postgresql
# Redis settings
-spring.redis.server=localhost
+spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
# jwt settings
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 14b0bfe..eb7aa87 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -11,7 +11,7 @@
spring.datasource.continue-on-error=true
#spring.datasource.initialization-mode=always
# Redis settings
-spring.redis.server=172.28.201.101
+spring.redis.host=172.28.201.101
spring.redis.port=16379
spring.redis.password=kingstar
# jwt settings
@@ -26,7 +26,6 @@
## quartz task scheduler
shopbalance.updater.cron=-
##################多租户配置 end################################
-
#############################################
spring.cloud.consul.enabled=false
spring.cloud.consul.host=172.28.201.70
diff --git a/gradle.properties b/gradle.properties
index 2e0dda4..acf8d17 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,2 +1,4 @@
payapiVersion = 1.0
-jdkVersion = 1.8
\ No newline at end of file
+jdkVersion = 1.8
+nxUser=ecard
+nxPassword=Ecard4SUP
\ No newline at end of file
diff --git a/payapi-sdk/build.gradle b/payapi-sdk/build.gradle
index f77566a..1f3cc9c 100644
--- a/payapi-sdk/build.gradle
+++ b/payapi-sdk/build.gradle
@@ -1,5 +1,6 @@
plugins {
id 'java'
+ id 'maven-publish'
id 'org.springframework.boot'
id "com.palantir.git-version"
}
@@ -7,6 +8,37 @@
apply plugin: 'io.spring.dependency-management'
+sdkVersion = gitVersion()
+
+publishing {
+ publications {
+ mavenJava(MavenPublication) {
+ groupId = project.group
+ artifactId = 'payapi-sdk'
+ version = sdkVersion
+ from components.java
+ }
+ }
+ repositories {
+ maven {
+ // change URLs to point to your repos, e.g. http://my.org/repo
+ def releasesRepoUrl = "http://ykt-nx.supwisdom.com/repository/ecard-repo/"
+ def snapshotsRepoUrl = "http://ykt-nx.supwisdom.com/repository/ecard-repo/snapshot/"
+ url = version.endsWith('dirty') ? snapshotsRepoUrl : releasesRepoUrl
+ credentials(PasswordCredentials) {
+ username = nxUser
+ password = nxPassword
+ }
+ }
+ }
+}
+
+jar {
+ manifest {
+ attributes('Payapi-SDK-Version': sdkVersion)
+ }
+}
+
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
@@ -16,4 +48,12 @@
implementation 'org.springframework.cloud:spring-cloud-dependencies:Finchley.SR3'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:2.1.2.RELEASE'
+
+ implementation 'javax.servlet:javax.servlet-api:4.0.1'
+
+ testImplementation 'org.springframework:spring-test'
+ testImplementation 'org.springframework.boot:spring-boot-test'
+ testImplementation 'junit:junit:4.12'
+ testImplementation project(':common')
+
}
\ No newline at end of file
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/ApiLoginProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/ApiLoginProxy.java
new file mode 100644
index 0000000..efb2afd
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/ApiLoginProxy.java
@@ -0,0 +1,31 @@
+package com.supwisdom.dlpay.paysdk;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+@FeignClient(value = "apiLoginProxy", url = "${payapi.url}")
+public interface ApiLoginProxy {
+ @RequestMapping(value = "/api/auth/gettoken", method = RequestMethod.GET)
+ ResponseEntity<Map<String, String>> loginInit(@RequestParam("appid") String appid);
+
+ @RequestMapping(value = "/api/auth/gettoken/{clientid}", method = RequestMethod.GET)
+ ResponseEntity<Map<String, String>> loginInitWithClientId(@RequestParam("appid") String appid,
+ @PathVariable(value = "clientid") String clientid);
+
+ @RequestMapping(value = "/api/auth/authentication", method = RequestMethod.GET)
+ ResponseEntity<Map<String, String>> login(@RequestParam("appid") String appid, @RequestParam("secret") String secret);
+
+ @RequestMapping(value = "/api/auth/authentication/{clientid}", method = RequestMethod.GET)
+ ResponseEntity<Map<String, String>> loginWithClientId(@RequestParam("appid") String appid, @RequestParam("secret") String secret,
+ @PathVariable(value = "clientid") String clientid);
+
+ @RequestMapping(value = "/api/auth/refresh", method = RequestMethod.GET)
+ ResponseEntity<Map<String, String>> refresh(HttpServletRequest request);
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/CitizenCardPay.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/CitizenCardPay.java
deleted file mode 100644
index f815fe1..0000000
--- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/CitizenCardPay.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.supwisdom.dlpay.paysdk;
-
-import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
-import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-
-@FeignClient(value = "citizenCardPay", url = "${payapi.url}")
-public interface CitizenCardPay {
- @PostMapping("/api/consume/citizencard/payinit")
- ResponseEntity citizencardPayinit(@RequestBody CitizenCardPayinitParam param);
-
- @PostMapping("/api/consume/citizencard/payfinish")
- ResponseEntity citizencardPayinit(@RequestBody CitizenCardPayfinishParam param);
-}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/CitizenCardPayProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/CitizenCardPayProxy.java
new file mode 100644
index 0000000..c5e38b1
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/CitizenCardPayProxy.java
@@ -0,0 +1,20 @@
+package com.supwisdom.dlpay.paysdk;
+
+import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
+import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.Map;
+
+@FeignClient(value = "citizenCardPay", url = "${payapi.url}")
+public interface CitizenCardPayProxy {
+ @RequestMapping(value = "/api/consume/citizencard/payinit", method = RequestMethod.GET)
+ ResponseEntity<Map<String, String>> citizencardPayinit(@RequestBody CitizenCardPayinitParam param);
+
+ @RequestMapping(value = "/api/consume/citizencard/payfinish", method = RequestMethod.GET)
+ ResponseEntity<Map<String, String>> citizencardPayFinish(@RequestBody CitizenCardPayfinishParam param);
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayAPIRequestInterceptor.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayAPIRequestInterceptor.java
new file mode 100644
index 0000000..305c665
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayAPIRequestInterceptor.java
@@ -0,0 +1,18 @@
+package com.supwisdom.dlpay.paysdk;
+
+import com.supwisdom.dlpay.paysdk.utils.Constants;
+import feign.RequestInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+
+@Component
+public class PayAPIRequestInterceptor {
+ @Bean
+ public RequestInterceptor headerInterceptor() {
+ return requestTemplate -> {
+ // 小示例,没什么卵用
+ requestTemplate.header(Constants.HEADER_TENANT_ID, "{tenantid}");
+ };
+ }
+}
+
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayReverseProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayReverseProxy.java
new file mode 100644
index 0000000..fc2ad65
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/PayReverseProxy.java
@@ -0,0 +1,19 @@
+package com.supwisdom.dlpay.paysdk;
+
+import com.supwisdom.dlpay.api.bean.ConsumePayCancelParam;
+import com.supwisdom.dlpay.api.bean.ConsumePayRefundParam;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Map;
+
+@FeignClient(name = "payReverseProxy", url = "${payapi.url}")
+public interface PayReverseProxy {
+ @PostMapping("/api/consume/paycancel")
+ ResponseEntity<Map<String, String>> payCancel(@RequestBody ConsumePayCancelParam param);
+
+ @PostMapping("/api/consume/payrefund")
+ ResponseEntity<Map<String, String>> payRefund(@RequestBody ConsumePayRefundParam param);
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/YktPayProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/YktPayProxy.java
new file mode 100644
index 0000000..238b008
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/YktPayProxy.java
@@ -0,0 +1,19 @@
+package com.supwisdom.dlpay.paysdk;
+
+import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
+import com.supwisdom.dlpay.api.bean.YktCardPayinitParam;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Map;
+
+@FeignClient(name = "yktPayProxy", url = "${payapi.url}")
+public interface YktPayProxy {
+ @PostMapping("/api/consume/ykt/payinit")
+ ResponseEntity<Map<String, String>> yktPayInit(@RequestBody YktCardPayinitParam param);
+
+ @PostMapping("/api/consume/ykt/payfinish")
+ ResponseEntity<Map<String, String>> yktPayFinish(@RequestBody CitizenCardPayfinishParam param);
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/utils/Constants.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/utils/Constants.java
new file mode 100644
index 0000000..ba565ee
--- /dev/null
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/utils/Constants.java
@@ -0,0 +1,5 @@
+package com.supwisdom.dlpay.paysdk.utils;
+
+public class Constants {
+ public static final String HEADER_TENANT_ID = "X-TENANT-ID";
+}
diff --git a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java
new file mode 100644
index 0000000..76407f5
--- /dev/null
+++ b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java
@@ -0,0 +1,49 @@
+package com.supwisdom.dlpay.paysdktest;
+
+
+import com.supwisdom.dlpay.paysdk.ApiLoginProxy;
+import com.supwisdom.dlpay.paysdk.CitizenCardPayProxy;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.cloud.openfeign.FeignAutoConfiguration;
+import org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.junit4.SpringRunner;
+
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(properties = {
+ "payapi.url=http://localhost:8080/payapi"},
+ classes = CitizenCardPayProxyTest.class)
+@ImportAutoConfiguration({RibbonAutoConfiguration.class,
+ FeignRibbonClientAutoConfiguration.class, FeignAutoConfiguration.class,
+ HttpMessageConvertersAutoConfiguration.class})
+@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
+@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})
+public class CitizenCardPayProxyTest {
+ private final static String appid = "700001";
+
+ private final static String tenantId = "{tenant_id}";
+
+ @Autowired
+ private ApiLoginProxy apiLoginProxy;
+
+ @Autowired
+ private CitizenCardPayProxy citizenCardPayProxy;
+
+ @org.junit.Test
+ public void citizencardPayinit() {
+ ResponseEntity loginInit = apiLoginProxy.loginInit(appid);
+ System.out.println("Data " + loginInit.getBody());
+ }
+
+ public static void main(String[] args) {
+
+ }
+}