From: Tang Cheng Date: Mon, 8 Jul 2019 07:56:05 +0000 (+0800) Subject: 增加了 payapi-sdk X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=5b48e7b7780cf5446c9e2915b8e0f7ccf6e0e589;p=epayment%2Ffood_payapi.git 增加了 payapi-sdk --- diff --git a/common/build.gradle b/common/build.gradle index c5ae67d0..88e57502 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -6,6 +6,7 @@ dependencies { 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 fb8bfc2f..6fa530bf 100644 --- a/config/application-devel-pg-local.properties +++ b/config/application-devel-pg-local.properties @@ -12,7 +12,7 @@ spring.datasource.username=payapi 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 14b0bfe9..eb7aa870 100644 --- a/config/application-devel-pg.properties +++ b/config/application-devel-pg.properties @@ -11,7 +11,7 @@ spring.datasource.password=123456 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 @@ security.request.sign=false ## 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 2e0dda48..acf8d172 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 f77566aa..1f3cc9c0 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 @@ plugins { 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 @@ dependencies { 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 00000000..efb2afd9 --- /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> loginInit(@RequestParam("appid") String appid); + + @RequestMapping(value = "/api/auth/gettoken/{clientid}", method = RequestMethod.GET) + ResponseEntity> loginInitWithClientId(@RequestParam("appid") String appid, + @PathVariable(value = "clientid") String clientid); + + @RequestMapping(value = "/api/auth/authentication", method = RequestMethod.GET) + ResponseEntity> login(@RequestParam("appid") String appid, @RequestParam("secret") String secret); + + @RequestMapping(value = "/api/auth/authentication/{clientid}", method = RequestMethod.GET) + ResponseEntity> loginWithClientId(@RequestParam("appid") String appid, @RequestParam("secret") String secret, + @PathVariable(value = "clientid") String clientid); + + @RequestMapping(value = "/api/auth/refresh", method = RequestMethod.GET) + ResponseEntity> 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 f815fe1a..00000000 --- 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 00000000..c5e38b1b --- /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> citizencardPayinit(@RequestBody CitizenCardPayinitParam param); + + @RequestMapping(value = "/api/consume/citizencard/payfinish", method = RequestMethod.GET) + ResponseEntity> 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 00000000..305c665d --- /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 00000000..fc2ad657 --- /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> payCancel(@RequestBody ConsumePayCancelParam param); + + @PostMapping("/api/consume/payrefund") + ResponseEntity> 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 00000000..238b008c --- /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> yktPayInit(@RequestBody YktCardPayinitParam param); + + @PostMapping("/api/consume/ykt/payfinish") + ResponseEntity> 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 00000000..ba565ee2 --- /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 00000000..76407f5f --- /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) { + + } +}