mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
Merge branch 'master' into registry-nacos
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
# changelog
|
# changelog
|
||||||
|
|
||||||
|
## 1.13.3
|
||||||
|
|
||||||
|
- 优化参数绑定
|
||||||
|
|
||||||
## 1.13.2
|
## 1.13.2
|
||||||
|
|
||||||
- 修复json方式请求获取不到参数问题
|
- 修复json方式请求获取不到参数问题
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-registry-api</artifactId>
|
<artifactId>sop-registry-api</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- easyopen starter -->
|
<!-- easyopen starter -->
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-common</artifactId>
|
<artifactId>sop-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -5,11 +5,11 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-common</artifactId>
|
<artifactId>sop-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>sop-gateway-common</artifactId>
|
<artifactId>sop-gateway-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>sop-gateway-common</name>
|
<name>sop-gateway-common</name>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-registry-api</artifactId>
|
<artifactId>sop-registry-api</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
@@ -6,11 +6,11 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-common</artifactId>
|
<artifactId>sop-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>sop-service-common</name>
|
<name>sop-service-common</name>
|
||||||
|
@@ -17,18 +17,23 @@ import static com.gitee.sop.servercommon.bean.ParamNames.VERSION_NAME;
|
|||||||
* @author tanghc
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
public class OpenContextImpl<T> implements OpenContext<T> {
|
public class OpenContextImpl<T> implements OpenContext<T> {
|
||||||
private JSONObject jsonObject;
|
private JSONObject rootJsonObject;
|
||||||
private T bizObject;
|
private T bizObject;
|
||||||
|
|
||||||
public OpenContextImpl(JSONObject jsonObject, Class<?> bizClass) {
|
public OpenContextImpl(JSONObject rootJsonObject, Class<?> bizClass) {
|
||||||
this.jsonObject = jsonObject;
|
this.rootJsonObject = rootJsonObject;
|
||||||
JSONObject bizJsonObj = this.jsonObject.getJSONObject(BIZ_CONTENT_NAME);
|
if (bizClass != null) {
|
||||||
bizObject = (bizClass == null || bizJsonObj == null) ? null : (T) bizJsonObj.toJavaObject(bizClass);
|
JSONObject bizJsonObj = this.rootJsonObject.getJSONObject(BIZ_CONTENT_NAME);
|
||||||
|
if (bizJsonObj == null) {
|
||||||
|
bizJsonObj = rootJsonObject;
|
||||||
|
}
|
||||||
|
bizObject = (T) bizJsonObj.toJavaObject(bizClass);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAppId() {
|
public String getAppId() {
|
||||||
return jsonObject.getString(APP_KEY_NAME);
|
return rootJsonObject.getString(APP_KEY_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -38,36 +43,36 @@ public class OpenContextImpl<T> implements OpenContext<T> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getBizContent() {
|
public String getBizContent() {
|
||||||
return jsonObject.getString(BIZ_CONTENT_NAME);
|
return rootJsonObject.getString(BIZ_CONTENT_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getCharset() {
|
public String getCharset() {
|
||||||
return jsonObject.getString(CHARSET_NAME);
|
return rootJsonObject.getString(CHARSET_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMethod() {
|
public String getMethod() {
|
||||||
return jsonObject.getString(API_NAME);
|
return rootJsonObject.getString(API_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getVersion() {
|
public String getVersion() {
|
||||||
return jsonObject.getString(VERSION_NAME);
|
return rootJsonObject.getString(VERSION_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getFormat() {
|
public String getFormat() {
|
||||||
return jsonObject.getString(FORMAT_NAME);
|
return rootJsonObject.getString(FORMAT_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getSignType() {
|
public String getSignType() {
|
||||||
return jsonObject.getString(SIGN_TYPE_NAME);
|
return rootJsonObject.getString(SIGN_TYPE_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Date getTimestamp() {
|
public Date getTimestamp() {
|
||||||
return jsonObject.getDate(TIMESTAMP_NAME);
|
return rootJsonObject.getDate(TIMESTAMP_NAME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -19,39 +19,37 @@ import java.util.Set;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class OpenUtil {
|
public class OpenUtil {
|
||||||
|
|
||||||
private static final String CONTENT_TYPE_URLENCODED = "application/x-www-form-urlencoded";
|
|
||||||
private static final String CONTENT_TYPE_JSON = "application/json";
|
|
||||||
private static final String CONTENT_TYPE_TEXT = "text/plain";
|
|
||||||
|
|
||||||
private static final String UTF8 = "UTF-8";
|
private static final String UTF8 = "UTF-8";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从request中获取参数。如果提交方式是application/x-www-form-urlencoded,则组装成json格式。
|
* 获取request中的参数
|
||||||
*
|
*
|
||||||
* @param request request对象
|
* @param request request对象
|
||||||
* @return 返回json
|
* @return 返回JSONObject
|
||||||
* @throws IOException
|
|
||||||
*/
|
*/
|
||||||
public static JSONObject getRequestParams(HttpServletRequest request) {
|
public static JSONObject getRequestParams(HttpServletRequest request) {
|
||||||
String requestJson = "{}";
|
|
||||||
String contentType = request.getContentType();
|
String contentType = request.getContentType();
|
||||||
if (StringUtils.isBlank(contentType)) {
|
if (contentType == null) {
|
||||||
return new JSONObject();
|
contentType = "";
|
||||||
}
|
}
|
||||||
contentType = contentType.toLowerCase();
|
contentType = contentType.toLowerCase();
|
||||||
if (StringUtils.containsAny(contentType, CONTENT_TYPE_JSON, CONTENT_TYPE_TEXT)) {
|
JSONObject jsonObject;
|
||||||
|
if (StringUtils.containsAny(contentType, MediaType.APPLICATION_JSON_VALUE, MediaType.TEXT_PLAIN_VALUE)) {
|
||||||
try {
|
try {
|
||||||
requestJson = IOUtils.toString(request.getInputStream(), UTF8);
|
String requestJson = IOUtils.toString(request.getInputStream(), UTF8);
|
||||||
} catch (IOException e) {
|
jsonObject = JSON.parseObject(requestJson);
|
||||||
|
} catch (Exception e) {
|
||||||
|
jsonObject = new JSONObject();
|
||||||
log.error("获取文本数据流失败", e);
|
log.error("获取文本数据流失败", e);
|
||||||
}
|
}
|
||||||
} else if (StringUtils.containsAny(contentType, CONTENT_TYPE_URLENCODED)) {
|
} else {
|
||||||
Map<String, Object> params = convertRequestParamsToMap(request);
|
Map<String, Object> params = convertRequestParamsToMap(request);
|
||||||
requestJson = JSON.toJSONString(params);
|
jsonObject = new JSONObject(params);
|
||||||
}
|
}
|
||||||
return JSON.parseObject(requestJson);
|
return jsonObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* request中的参数转换成map
|
* request中的参数转换成map
|
||||||
*
|
*
|
||||||
@@ -60,7 +58,7 @@ public class OpenUtil {
|
|||||||
*/
|
*/
|
||||||
public static Map<String, Object> convertRequestParamsToMap(HttpServletRequest request) {
|
public static Map<String, Object> convertRequestParamsToMap(HttpServletRequest request) {
|
||||||
Map<String, String[]> paramMap = request.getParameterMap();
|
Map<String, String[]> paramMap = request.getParameterMap();
|
||||||
if(paramMap == null || paramMap.isEmpty()) {
|
if (paramMap == null || paramMap.isEmpty()) {
|
||||||
return Collections.emptyMap();
|
return Collections.emptyMap();
|
||||||
}
|
}
|
||||||
Map<String, Object> retMap = new HashMap<String, Object>(paramMap.size());
|
Map<String, Object> retMap = new HashMap<String, Object>(paramMap.size());
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- eureka 服务发现 -->
|
<!-- eureka 服务发现 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
|
@@ -64,6 +64,13 @@ public class AlipayController {
|
|||||||
return story;
|
return story;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 忽略验证
|
||||||
|
@ApiMapping(value = "story.get", version = "2.1", ignoreValidate = true)
|
||||||
|
public Story getStory21(Story story) {
|
||||||
|
story.setName(story.getName() + ", story.get2.1, ignoreValidate = true");
|
||||||
|
return story;
|
||||||
|
}
|
||||||
|
|
||||||
// http://localhost:2222/getStory2
|
// http://localhost:2222/getStory2
|
||||||
// 遗留接口具备开放平台能力
|
// 遗留接口具备开放平台能力
|
||||||
@ApiAbility
|
@ApiAbility
|
||||||
|
@@ -45,7 +45,7 @@ public class TraditionalWebappController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// http://localhost:8081/rest/food/getFoodByObj?id=2
|
// http://localhost:8081/rest/food/getFoodByObj?id=2
|
||||||
@ApiMapping(value = "ggetFoodByObj", method = RequestMethod.GET)
|
@ApiMapping(value = "getFoodByObj", method = RequestMethod.GET)
|
||||||
public Food getFoodByObj(Food food) {
|
public Food getFoodByObj(Food food) {
|
||||||
return food;
|
return food;
|
||||||
}
|
}
|
||||||
|
@@ -23,7 +23,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-gateway-common</artifactId>
|
<artifactId>sop-gateway-common</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- ↓↓↓ 使用spring cloud zuul ↓↓↓ -->
|
<!-- ↓↓↓ 使用spring cloud zuul ↓↓↓ -->
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
package com.gitee.sop.gateway.controller;
|
package com.gitee.sop.gateway.controller;
|
||||||
|
|
||||||
import com.gitee.sop.gatewaycommon.bean.SopConstants;
|
import com.gitee.sop.gatewaycommon.bean.SopConstants;
|
||||||
|
import com.gitee.sop.gatewaycommon.param.ParamNames;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@@ -29,7 +31,14 @@ public class RedirectController {
|
|||||||
) throws ServletException, IOException {
|
) throws ServletException, IOException {
|
||||||
request.setAttribute(SopConstants.REDIRECT_METHOD_KEY, method);
|
request.setAttribute(SopConstants.REDIRECT_METHOD_KEY, method);
|
||||||
request.setAttribute(SopConstants.REDIRECT_VERSION_KEY, version);
|
request.setAttribute(SopConstants.REDIRECT_VERSION_KEY, version);
|
||||||
request.getRequestDispatcher(path).forward(request, response);
|
String queryString = request.getQueryString();
|
||||||
|
String versionQuery = ParamNames.VERSION_NAME + '=' + version;
|
||||||
|
if (StringUtils.isBlank(queryString)) {
|
||||||
|
queryString = versionQuery;
|
||||||
|
} else {
|
||||||
|
queryString = queryString + '&' + versionQuery;
|
||||||
|
}
|
||||||
|
request.getRequestDispatcher(path + '?' + queryString).forward(request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
56
sop-test/src/test/java/com/gitee/sop/test/PostFormTest.java
Normal file
56
sop-test/src/test/java/com/gitee/sop/test/PostFormTest.java
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
package com.gitee.sop.test;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.gitee.sop.test.alipay.AlipaySignature;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* post请求,模拟表单提交(application/x-www-form-urlencoded)
|
||||||
|
*/
|
||||||
|
public class PostFormTest extends TestBase {
|
||||||
|
|
||||||
|
String url = "http://localhost:8081/api"; // zuul
|
||||||
|
String appId = "2019032617262200001";
|
||||||
|
// 支付宝私钥
|
||||||
|
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCXJv1pQFqWNA/++OYEV7WYXwexZK/J8LY1OWlP9X0T6wHFOvxNKRvMkJ5544SbgsJpVcvRDPrcxmhPbi/sAhdO4x2PiPKIz9Yni2OtYCCeaiE056B+e1O2jXoLeXbfi9fPivJZkxH/tb4xfLkH3bA8ZAQnQsoXA0SguykMRZntF0TndUfvDrLqwhlR8r5iRdZLB6F8o8qXH6UPDfNEnf/K8wX5T4EB1b8x8QJ7Ua4GcIUqeUxGHdQpzNbJdaQvoi06lgccmL+PHzminkFYON7alj1CjDN833j7QMHdPtS9l7B67fOU/p2LAAkPMtoVBfxQt9aFj7B8rEhGCz02iJIBAgMBAAECggEARqOuIpY0v6WtJBfmR3lGIOOokLrhfJrGTLF8CiZMQha+SRJ7/wOLPlsH9SbjPlopyViTXCuYwbzn2tdABigkBHYXxpDV6CJZjzmRZ+FY3S/0POlTFElGojYUJ3CooWiVfyUMhdg5vSuOq0oCny53woFrf32zPHYGiKdvU5Djku1onbDU0Lw8w+5tguuEZ76kZ/lUcccGy5978FFmYpzY/65RHCpvLiLqYyWTtaNT1aQ/9pw4jX9HO9NfdJ9gYFK8r/2f36ZE4hxluAfeOXQfRC/WhPmiw/ReUhxPznG/WgKaa/OaRtAx3inbQ+JuCND7uuKeRe4osP2jLPHPP6AUwQKBgQDUNu3BkLoKaimjGOjCTAwtp71g1oo+k5/uEInAo7lyEwpV0EuUMwLA/HCqUgR4K9pyYV+Oyb8d6f0+Hz0BMD92I2pqlXrD7xV2WzDvyXM3s63NvorRooKcyfd9i6ccMjAyTR2qfLkxv0hlbBbsPHz4BbU63xhTJp3Ghi0/ey/1HQKBgQC2VsgqC6ykfSidZUNLmQZe3J0p/Qf9VLkfrQ+xaHapOs6AzDU2H2osuysqXTLJHsGfrwVaTs00ER2z8ljTJPBUtNtOLrwNRlvgdnzyVAKHfOgDBGwJgiwpeE9voB1oAV/mXqSaUWNnuwlOIhvQEBwekqNyWvhLqC7nCAIhj3yvNQKBgQCqYbeec56LAhWP903Zwcj9VvG7sESqXUhIkUqoOkuIBTWFFIm54QLTA1tJxDQGb98heoCIWf5x/A3xNI98RsqNBX5JON6qNWjb7/dobitti3t99v/ptDp9u8JTMC7penoryLKK0Ty3bkan95Kn9SC42YxaSghzqkt+uvfVQgiNGQKBgGxU6P2aDAt6VNwWosHSe+d2WWXt8IZBhO9d6dn0f7ORvcjmCqNKTNGgrkewMZEuVcliueJquR47IROdY8qmwqcBAN7Vg2K7r7CPlTKAWTRYMJxCT1Hi5gwJb+CZF3+IeYqsJk2NF2s0w5WJTE70k1BSvQsfIzAIDz2yE1oPHvwVAoGAA6e+xQkVH4fMEph55RJIZ5goI4Y76BSvt2N5OKZKd4HtaV+eIhM3SDsVYRLIm9ZquJHMiZQGyUGnsvrKL6AAVNK7eQZCRDk9KQz+0GKOGqku0nOZjUbAu6A2/vtXAaAuFSFx1rUQVVjFulLexkXR3KcztL1Qu2k5pB6Si0K/uwQ=";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPostForm() throws Exception {
|
||||||
|
|
||||||
|
// 公共请求参数
|
||||||
|
Map<String, String> params = new HashMap<String, String>();
|
||||||
|
params.put("app_id", appId);
|
||||||
|
params.put("method", "demo.post.json");
|
||||||
|
params.put("format", "json");
|
||||||
|
params.put("charset", "utf-8");
|
||||||
|
params.put("sign_type", "RSA2");
|
||||||
|
params.put("timestamp", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||||
|
params.put("version", "1.0");
|
||||||
|
|
||||||
|
// 业务参数
|
||||||
|
Map<String, String> bizContent = new HashMap<>();
|
||||||
|
bizContent.put("name", "葫芦娃");
|
||||||
|
|
||||||
|
params.put("biz_content", JSON.toJSONString(bizContent));
|
||||||
|
|
||||||
|
System.out.println("----------- 请求信息 -----------");
|
||||||
|
System.out.println("请求参数:" + buildParamQuery(params));
|
||||||
|
System.out.println("商户秘钥:" + privateKey);
|
||||||
|
String content = AlipaySignature.getSignContent(params);
|
||||||
|
System.out.println("待签名内容:" + content);
|
||||||
|
String sign = AlipaySignature.rsa256Sign(content, privateKey, "utf-8");
|
||||||
|
System.out.println("签名(sign):" + sign);
|
||||||
|
|
||||||
|
params.put("sign", sign);
|
||||||
|
|
||||||
|
System.out.println("----------- 返回结果 -----------");
|
||||||
|
String responseData = post(url, params);// 发送请求
|
||||||
|
System.out.println(responseData);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -25,7 +25,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-registry-api</artifactId>
|
<artifactId>sop-registry-api</artifactId>
|
||||||
<version>1.13.2-SNAPSHOT</version>
|
<version>1.13.3-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
Reference in New Issue
Block a user