9 changed files with 212 additions and 69 deletions
@ -0,0 +1,20 @@ |
|||
package com.zdxt.code.service; |
|||
|
|||
import com.zdxt.code.domain.MssqAddOrder; |
|||
import com.zdxt.code.domain.MssqBaseDomain; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
|
|||
/** |
|||
* 民生诉求接口实现类 |
|||
*/ |
|||
public interface MssqApiService { |
|||
|
|||
/** |
|||
* 添加民生诉求工单 |
|||
* @param mssqAddOrder |
|||
* @return |
|||
*/ |
|||
Boolean addMssqOrder(MssqAddOrder mssqAddOrder) throws Exception; |
|||
|
|||
MssqBaseDomain getMssqToken() throws Exception; |
|||
} |
|||
@ -0,0 +1,81 @@ |
|||
package com.zdxt.code.service.impl; |
|||
|
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.zdxt.code.domain.MssqAddOrder; |
|||
import com.zdxt.code.domain.MssqBaseDomain; |
|||
import com.zdxt.code.service.MssqApiService; |
|||
import com.zdxt.code.utils.ServiceInvocation; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import static com.zdxt.code.utils.ServiceInvocation.gatewaySignEncode; |
|||
import static com.zdxt.code.utils.ServiceInvocation.httpRequest; |
|||
|
|||
@Slf4j |
|||
@Service |
|||
public class MssqApiServiceImpl implements MssqApiService { |
|||
|
|||
@Value("mssq.apiUrl") |
|||
private String mssqUrl; |
|||
|
|||
@Value("mssq.appId") |
|||
private String appId; |
|||
|
|||
@Value("mssq.appKey") |
|||
private String appKey; |
|||
|
|||
@Override |
|||
public Boolean addMssqOrder(MssqAddOrder mssqAddOrder) throws Exception { |
|||
MssqBaseDomain mssqToken = this.getMssqToken(); |
|||
mssqAddOrder.setAccessToken(mssqToken.getAccessToken()); |
|||
//appId
|
|||
mssqAddOrder.setAppId(appId); |
|||
//签名
|
|||
mssqAddOrder.setGatewaySig(mssqToken.getGatewaySig()); |
|||
//请求时间戳
|
|||
mssqAddOrder.setGatewayRtime(mssqToken.getGatewayRtime()); |
|||
String s = JSONObject.toJSONString(mssqAddOrder); |
|||
log.info("民生诉求token:{}",JSONObject.toJSONString(mssqToken)); |
|||
log.info("民生诉求工单新增,上传参数:{}",s); |
|||
JSONObject serviceJsonData = ServiceInvocation.httpRequestForInterface(mssqUrl + "/handlerProcess/channelAddOrder", |
|||
mssqAddOrder.getInvokingServiceRequestMethod(), s, appId, mssqToken.getGatewayRtime(), mssqToken.getGatewaySig()); |
|||
String codeValue = serviceJsonData.getString("code"); |
|||
if (codeValue.equals("200")) { |
|||
log.info("请求url:{},响应成功!",mssqUrl + "/handlerProcess/channelAddOrder"); |
|||
return Boolean.TRUE; |
|||
} else { |
|||
log.error("请求url:{},响应失败!,响应结果:{}",mssqUrl + "/handlerProcess/channelAddOrder",serviceJsonData); |
|||
return Boolean.FALSE; |
|||
} |
|||
// return null;
|
|||
} |
|||
|
|||
@Override |
|||
public MssqBaseDomain getMssqToken() throws Exception { |
|||
MssqBaseDomain mssqBaseDomain = new MssqBaseDomain(); |
|||
String currTime = String.valueOf(System.currentTimeMillis()); |
|||
String invokingServiceRequestMethod="POST"; |
|||
// 服务调用的请求方法
|
|||
// 1.获取本地签名
|
|||
String tokenSign = gatewaySignEncode(appId, appKey, currTime); |
|||
// 2.调用获取token接口
|
|||
JSONObject jsonObject = httpRequest(mssqUrl + "/auth/token", "POST", "", appId, currTime, tokenSign); |
|||
JSONObject jsonObjectBody = JSONObject.parseObject(jsonObject.getString("body")); |
|||
// log.info("民生诉求获取token接口:{}",jsonObject);
|
|||
if (jsonObjectBody != null) { |
|||
String accessToken = jsonObjectBody.getString("access_token"); |
|||
// 3.在获得服务调用秘钥access_token后,根据自己的appKey使用AES解密算法对返回值进行解密,最终获取签名密钥secretKey
|
|||
String secretKey = ServiceInvocation.gatewayAesDecode(appKey, accessToken); |
|||
// 4.获取本地签名
|
|||
String sign = gatewaySignEncode(appId, secretKey, currTime); |
|||
mssqBaseDomain.setAccessToken(accessToken); |
|||
//签名
|
|||
mssqBaseDomain.setGatewaySig(sign); |
|||
} |
|||
//当前时间戳
|
|||
mssqBaseDomain.setGatewayRtime(currTime); |
|||
|
|||
return mssqBaseDomain; |
|||
} |
|||
} |
|||
Loading…
Reference in new issue