版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、供应商业务系统对接测试指南对接环境简介供应链统一服务平台作为外部用户统一入口和外部数据集成中心,通过提供标准化的服务接口,为方便第三方更快速,更高效的集成到平台,现已搭建完成模拟测试环境,模拟环境信息如下:用户名密码要加密,调用要对请求体进行sign签名,相关介绍请仔细阅读此文件。签名规则使用的是HmacSHA256加密。下面流程图中描述有误 请以HmacSHA256 为准注:测试用户名密码及对接环境相关,以邮件回复的为准对接流程图Postman模拟请求测试请求流程示例:图中地址栏为示例地址,请求地址获取access_token时,请将地址替换为 HYPERLINK 02:4170/api/W
2、ZGYL/scp-supplier-erp/auth/get_access_token http:/*/api/WZGYL/scp-supplier-erp/auth/get_access_token,在请求其他接口服务时,也请将地址替换为服务请求地址:http:/*/api/WZGYL/scp-supplier-erp + 服务相对地址,请参考文档开头服务地址示例上图中body 中的账户密码并未加密,不能直接请求获取token,所以在获取access_token时 请求体body 中的账户密码请使用流程中经过加密的账户密码,然后用加密过后的账户密码 去进行sign 计算,并将sign放在请求
3、头header 中Token和请求参数签名设置:在请求其他接口服务时,也请将地址替换为服务请求地址:http:/*/api/WZGYL/scp-supplier-erp + 服务相对地址,请参考文档开头服务地址示例按照流程填写header内容请求参数签名代码示例s签名密钥:testKey签名流程:签名java代码示例public class Test public static void main(String args) throws IOException String str = n + username:admin,n + password:aaa,n + aa:1,2,5,6,n +
4、 bb:n + aa:bb,n + aaa:1n + ,n + int:1,n + doube:1.2,n + boolen:truen + ; /清除换行符 str = Ppile(trn).matcher(str).replaceAll(); /jaskson解析 ObjectMapper OBJECT_MAPPER = new ObjectMapper(); /转成map Map jsonNode = OBJECT_MAPPER.readValue(str, Map.class); /排序 OBJECT_MAPPER.configure(SerializationFeature.ORDE
5、R_MAP_ENTRIES_BY_KEYS, true); /生成json String string = OBJECT_MAPPER.writeValueAsString(jsonNode); /签名密钥 String signKey = testKey; /HmacSHA265 加密 String encode = DigestUtil.hmacDegist(DigestUtil.HmacSHA256, signKey.getBytes(), string).toBase64(); System.out.println(encode); 关于自动排序,各大JSON框架都有实现,自行适配Hm
6、acSHA256加密示例:public static String hmacDegist(String algorithm, byte key, String data) try /还原密钥,因为密钥是以byte形式为消息传递算法所拥有 SecretKey secretKey = new SecretKeySpec(key, algorithm); /实例化Mac Mac mac = Mac.getInstance(secretKey.getAlgorithm(), BC); /初始化Mac mac.init(secretKey); /执行消息摘要处理 byte result = mac.do
7、Final(data.getBytes(StandardCharsets.UTF_8); /加密后的字符 String string = new String(java.util.Base64.getEncoder().encode(result), StandardCharsets.UTF_8); return string; catch (Exception e) throw new SecurityException(e); Bouncycastle Maven坐标 org.bouncycastle bcprov-jdk15on 1.55RSA非对称加密代码示例公钥:MIGfMA0GCS
8、qGSIb3DQEBAQUAA4GNADCBiQKBgQCVfisoOLrHQTZcAoQgKs36C0tOA4Kn6O6mYTxtBntO9dH/F+qYYXkNw8YJe2qDVIECeZSjgIZvsqItui9sJYNDAlIwW8QUguLjzrP/uJs9XjuniUvvDEEyTDBUOqUUr8164RUgGjt/7GhD5/EPnmir0hnji4bsP3bZX7QK6uOhUwIDAQABJava代码示例:public static void main(String args) throws UnsupportedEncodingException, NoSuchAlgor
9、ithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException String publicKey = 公钥; String testStr = 待加密的字符; byte data = testStr.getBytes(Charset.forName(utf-8); byte keyBytes = Base64Utils.decode(publicKey); X509EncodedKeySpec x
10、509KeySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance(RSA); PublicKey key = keyFactory.generatePublic(x509KeySpec); Cipher cipher = Cipher.getInstance(RSA/ECB/PKCS1Padding); cipher.init(Cipher.ENCRYPT_MODE, key); byte result = doFinal(cipher, data, 128-11); /加
11、密后的字符 String string = new String(java.util.Base64.getEncoder().encode(result), StandardCharsets.UTF_8); System.out.println(string);private static byte doFinal(Cipher cipher, byte data, int key_len) throws BadPaddingException, IllegalBlockSizeException int inputLen = data.length, offset = 0; byte tmp
12、; ByteArrayOutputStream out = new ByteArrayOutputStream(getTmpArrayLength(inputLen); while (inputLen 0) tmp = cipher.doFinal(data, offset, Math.min(key_len, inputLen); out.write(tmp, 0, tmp.length); offset += key_len; inputLen -= key_len; return out.toByteArray();private static int getTmpArrayLength(int L) int S = 128; while (S L) S = 1; return S; 对接注意事项、获取acces_token时,使用的用户名和密码需要是加密之后的用户名和密码,加密代码参考文档中“RSA非对称加密代码示例”部分,并且还需要将加密过后的用户名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省行政职业能力真题2016年上半年
- 2019年江西公务员考试申论真题(乡镇机关职位)
- 2024年联合体合同书
- 2024年工程借款合同书
- 北京申论模拟116
- 浙江申论模拟129
- 河南省南阳市六校2024-2025学年高二上学期10月期中考试 数学 含答案
- 建筑工程劳务承包合同
- 2024年全日制劳动合同书样本
- 新解读《GBT 41127-2021跨境电子商务 在线争议解决单证规范》
- 社区网格员通用安全知识培训课件
- Unit 1 Goldilocks and the three bears( 教学设计)-2022-2023学年英语五年级上册
- 广西2022-2023学年高二12月学业水平考试英语试题( 含答案解析 )
- 关工委帮扶关爱活动方案
- 2023年黑龙江省科学技术厅所属事业单位招聘4人笔试备考试题及答案解析
- 铸造行业的危险因素辨识及预防措施
- ICH指南指导原则Q2(R1)分析方法的验证课件
- 农业技术员专业知识考试题库与答案
- 农村寄宿制高中生心理健康现状及对策研究 论文
- led灯珠参数和应用
- 基础护理服务工作规范(全文)
评论
0/150
提交评论