SOP(Simple Open Platform)一个开放平台解决方案项目,基于 Spring Cloud 实现,目标让用户快速搭建自己的开放平台。
通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。
SOP 封装了开放平台大部分功能包括:签名验证、统一异常处理、统一返回内容 、业务参数验证(JSR-303)、秘钥管理等,未来还会实现更多功能。
以上情况都可以考虑使用 SOP
- // 加一个注解即可
- @Open("story.get")
- @RequestMapping("/get")
- public StoryResult get() {
- StoryResult result = new StoryResult();
- result.setId(1L);
- result.setName("海底小纵队");
- return result;
- }
调用:
- // 公共请求参数
- Map<String, String> params = new HashMap<String, String>();
- params.put("app_id", appId);
- params.put("method", "story.get");
- 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("id", "1");
- 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("URL参数:" + buildUrlQuery(params));
-
- System.out.println("----------- 返回结果 -----------");
- String responseData = get(url, params);// 发送请求
- System.out.println(responseData);
如上图所示,整个系统运行后,开发者只需关注微服务中的业务代码,接口变更后重新部署微服务应用即可
运行环境:JDK8,Maven3,Nacos,Mysql