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