wangchaoxu 2 years ago
commit 48192162b2

@ -0,0 +1,58 @@
<?php
class DdAuth {
public function getToken($code) {
$params = array (
'app_key' => $this->appKey,
'method' => 'token.create',
'timestamp' => date('Y-m-d H:i:s'),
'v' => 2,
'param_json' => json_encode([
'code' => $code,
'grant_type' => 'authorization_code',
])
);
$params['sign'] = $this->createSign($params);
$url = $this->buildUrl($this->tokenUrl, $params);
$url = $this->transferChars($url);
$json = $this->curl($url);
$resp = json_decode($json, true);
return $resp['data'];
}
private function createSign($sysParams) {
ksort($sysParams);
$md5Str = '';
foreach ($sysParams as $key => $val) {
$md5Str .= $key . $val;
}
$md5Str = $this->appSecret . $md5Str . $this->appSecret;
return md5($md5Str);
}
private function buildUrl($url, $requestParams) {
$params = '';
foreach ($requestParams as $key => $val) {
$params .= $key . '=' . $val . '&';
}
$params = substr($params, 0 , -1);
$url = $url . '?' . $params;
return $url;
}
private function transferChars($url) {
return str_replace(['"', ' '], ['%22', '%20'], $url);;
}
}

@ -5,9 +5,11 @@ import com.jinritemai.cloud.base.api.BaseRequest;
import com.jinritemai.cloud.base.api.BaseResponse; import com.jinritemai.cloud.base.api.BaseResponse;
import com.jinritemai.cloud.base.api.ExtensionService; import com.jinritemai.cloud.base.api.ExtensionService;
import com.jinritemai.cloud.base.api.ExtensionServiceHandler; import com.jinritemai.cloud.base.api.ExtensionServiceHandler;
import com.ms.api.common.R;
import com.ms.api.dto.ItemDTO; import com.ms.api.dto.ItemDTO;
import com.ms.api.tool.DsFormRequestTemplate; import com.ms.api.tool.DsFormRequestTemplate;
import com.ms.api.common.UniqueKeyMultiValueMap; import com.ms.api.common.UniqueKeyMultiValueMap;
import com.ms.api.tool.DsJsonRequestTemplate;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
@ -18,22 +20,25 @@ import java.util.HashMap;
@Slf4j @Slf4j
public class DsTestJavaRequestService implements ExtensionServiceHandler<ItemDTO, String> { public class DsTestJavaRequestService implements ExtensionServiceHandler<ItemDTO, String> {
// @Autowired
// private DsFormRequestTemplate dsFormRequestTemplate;
@Autowired @Autowired
private DsFormRequestTemplate dsFormRequestTemplate; private DsJsonRequestTemplate dsJsonRequestTemplate;
@Override @Override
public BaseResponse<String> handle(BaseRequest<ItemDTO> req) { public BaseResponse<String> handle(BaseRequest<ItemDTO> req) {
MultiValueMap<String, String> params = new UniqueKeyMultiValueMap<>(); MultiValueMap<String, Object> params = new UniqueKeyMultiValueMap<>();
// List arrayString = new ArrayList<String>(); // List arrayString = new ArrayList<String>();
// arrayString.add("arrayString1"); // arrayString.add("arrayString1");
// arrayString.add("arrayString2"); // arrayString.add("arrayString2");
// params.add("arrayString", JSON.toJSONString(arrayString)); // params.add("arrayString", JSON.toJSONString(arrayString));
HashMap mapStringString = new HashMap<String, String>(); HashMap<String, Object> mapStringString = new HashMap<>();
mapStringString.put("A","mapStringString1"); mapStringString.put("A","mapStringString1");
mapStringString.put("B","mapStringString2"); mapStringString.put("B","mapStringString2");
params.add("mapStringString", JSON.toJSONString(mapStringString)); params.add("mapStringString", mapStringString);
// //
// List arrayInt64 = new ArrayList<Integer>(); // List arrayInt64 = new ArrayList<Integer>();
// arrayInt64.add(10000); // arrayInt64.add(10000);
@ -53,17 +58,12 @@ public class DsTestJavaRequestService implements ExtensionServiceHandler<ItemDTO
String res = null; String res = null;
try { try {
res = dsFormRequestTemplate.execute("/order/testJava", params); res = dsJsonRequestTemplate.execute("/order/testJava", params);
log.info(res); log.info(res);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error(e.getMessage()); log.error(e.getMessage());
} }
return BaseResponse.<String>builder() return R.ok(res);
.success(true)
.message("success")
.data(res)
.code("10000")
.build();
} }
} }

@ -33,6 +33,8 @@ public class GetPlatformAuthUrlService extends SPIBaseService implements Extensi
// ----逻辑校验---- // ----逻辑校验----
// ----业务处理---- // ----业务处理----
// TODO 群里讨论过说,先判断下获取授权信息列表,如果授权过,就不用再获取这个链接 open/platform_shop/get_platform_auth_url
MultiValueMap<String, String> params = new UniqueKeyMultiValueMap<>(); MultiValueMap<String, String> params = new UniqueKeyMultiValueMap<>();
params.add("userId", SecurityTool.encodeByAES(fields.getUserId())); params.add("userId", SecurityTool.encodeByAES(fields.getUserId()));
params.add("platform","ddMicroApp"); params.add("platform","ddMicroApp");

@ -1,4 +1,4 @@
package com.ms.api.spi.callback; package com.ms.api.spi.common;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.jinritemai.cloud.base.api.BaseRequest; import com.jinritemai.cloud.base.api.BaseRequest;
@ -16,9 +16,9 @@ import java.util.Map;
/** /**
* 1688 * 1688
*/ */
@ExtensionService("platformAuthCallBack") @ExtensionService("callBackMessage")
@Slf4j @Slf4j
public class PlatformAuthCallBackService extends SPIBaseService implements ExtensionServiceHandler<PlatformAuthCallBackRequestDTO, Map<String, String>> { public class CallBackMessageService extends SPIBaseService implements ExtensionServiceHandler<PlatformAuthCallBackRequestDTO, Map<String, String>> {
@Override @Override
public BaseResponse<Map<String, String>> handle(BaseRequest<PlatformAuthCallBackRequestDTO> req) { public BaseResponse<Map<String, String>> handle(BaseRequest<PlatformAuthCallBackRequestDTO> req) {

@ -0,0 +1,81 @@
package com.ms.api.tool;
import cn.hutool.crypto.SecureUtil;
import com.alibaba.fastjson.JSON;
import com.ms.api.common.UniqueKeyMultiValueMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.Set;
/**
* DS
*
*/
@Slf4j
@Component
public class DsJsonRequestTemplate {
@Autowired
private CloudRequestTemplate cloudRequestTemplate;
@Value("${jx.ds.host-prod}")
private String dsHostProd;
@Value("${jx.ds.host-test}")
private String dsHostTest;
@Value("${jx.ds.token-prod}")
private String dsTokenProd;
@Value("${jx.ds.token-test}")
private String dsTokenTest;
private String dsHost;
private String dsToken;
public <T> String execute(String url, T body) throws Exception {
// 选择环境
if (StringUtils.isEmpty(dsHost)) {
String activeProfile = System.getenv("sys-deploy-env");
if ("Prod".equals(activeProfile)) {
// 当前为生产环境
dsHost = dsHostProd;
dsToken = dsTokenProd;
} else {
dsHost = dsHostTest;
dsToken = dsTokenTest;
}
}
// 构建头部
HttpHeaders headers = new HttpHeaders();
// 微应用固定传msddMicro
headers.set("x-app-name", "msddMicro");
// 使用json方式更符合外部服务管理
headers.setContentType(MediaType.APPLICATION_JSON);
MultiValueMap<String,Object> params = (UniqueKeyMultiValueMap<String,Object>)body;
// 构建签名
Set<String> keySet = params.keySet();
String[] keyArray = keySet.toArray(new String[0]);
Arrays.sort(keyArray);
StringBuilder sb = new StringBuilder();
sb.append(dsToken);
for (String s : keyArray) {
sb.append(s).append(JSON.toJSONString(params.getFirst(s)));
}
sb.append(dsToken);
String sign = SecureUtil.md5(sb.toString());
headers.set("x-dd-micro-app-sign", sign);
return cloudRequestTemplate.executePost(dsHost + url, JSON.toJSONString(params), headers);
}
}
Loading…
Cancel
Save