提交 668e4319 authored 作者: wangmenglong's avatar wangmenglong

阿里回调通知

上级 6bb89d39
...@@ -14,10 +14,14 @@ import com.alipay.api.request.AlipayEbppIndustryJobResumeauthlogininfoGetRequest ...@@ -14,10 +14,14 @@ import com.alipay.api.request.AlipayEbppIndustryJobResumeauthlogininfoGetRequest
import com.alipay.api.request.AlipaySystemOauthTokenRequest; import com.alipay.api.request.AlipaySystemOauthTokenRequest;
import com.alipay.api.response.AlipayEbppIndustryJobResumeauthlogininfoGetResponse; import com.alipay.api.response.AlipayEbppIndustryJobResumeauthlogininfoGetResponse;
import com.alipay.api.response.AlipaySystemOauthTokenResponse; import com.alipay.api.response.AlipaySystemOauthTokenResponse;
import com.jfb.recruit.xsnowflake.SnowFlakeFactory;
import data.recruit.Person; import data.recruit.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/** /**
* @author wangmenglong * @author wangmenglong
...@@ -34,6 +38,9 @@ public class ApiAliController extends BaseController { ...@@ -34,6 +38,9 @@ public class ApiAliController extends BaseController {
public static String decryptKey = "+RWPnjKz2WzhE2pa7lx4Ag=="; public static String decryptKey = "+RWPnjKz2WzhE2pa7lx4Ag==";
@Autowired
SnowFlakeFactory snowFlakeFactory;
/** /**
* @description: 获取openId * @description: 获取openId
* @author: wangmenglong * @author: wangmenglong
...@@ -166,6 +173,46 @@ public class ApiAliController extends BaseController { ...@@ -166,6 +173,46 @@ public class ApiAliController extends BaseController {
} }
@RequestMapping(value = "/isv/spi/service")
@ResponseBody
public String spiService(@RequestParam Map<String, String> params, @RequestHeader Map<String, String> headers) throws Exception{
// http响应结果载体
JSONObject result = new JSONObject();
// 业务处理结果载体
JSONObject response = new JSONObject();
// 1、验签支付宝请求报文
boolean isPass = false;
// 提取spi接口定义的header参数,接口定义所有参数都需要参与验签(接口没有定义header参数则忽略这一步)
String spiHeader = headers.get("spi_header");
params.put("spi_header", spiHeader);
isPass = AlipaySignature.rsaCheckV1(params, alipayPublicKey, "UTF-8", "RSA2");
if(isPass) {
// 2、验签成功:处理业务逻辑,并构造业务处理结果
response.put("code", "10000");
response.put("msg", "Success");
response.put("out_apply_id", snowFlakeFactory.nextId());
} else {
// 3、验签失败:构造错误码
response.put("code", "40004");
response.put("msg", "Business Failed");
response.put("sub_code", "ISV-VERIFICATION-FAILED");
response.put("sub_msg", "验签失败");
}
// 4、业务处理结果加签 (可选,查看 服务基础配置 章节)
// contentToSign为 {"code":"10000","msg":"Success","biz":"value","person":{"age":"18","height":"180"}}
String contentToSign = response.toJSONString();
String sign = null;
sign = AlipaySignature.rsaSign(contentToSign, privateKey, "UTF-8", "RSA2");
// 5、构造http响应结果
result.put("sign", sign);
//可选,查看 服务基础配置
result.put("response", response);
// 返回json格式响应报文
return result.toJSONString();
}
public static AlipayConfig getAlipayConfig() { public static AlipayConfig getAlipayConfig() {
AlipayConfig alipayConfig = new AlipayConfig(); AlipayConfig alipayConfig = new AlipayConfig();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论