供应商业务系统对接测试指南对接环境简介供应链统一服务平台作为外部用户统一入口和外部数据集成中心,通过提供标准化的服务接口,为方便第三方更快速,更高效的集成到平台,现已搭建完成模拟测试环境,模拟环境信息如下:用户名密码要加密,调用要对请求体进行sign签名,相关介绍请仔细阅读此文件.
签名规则使用的是HmacSHA256加密.
下面流程图中描述有误请以HmacSHA256为准注:测试用户名密码及对接环境相关,以邮件回复的为准对接流程图Postman模拟请求测试请求流程示例:图中地址栏为示例地址,请求地址获取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放在请求头header中Token和请求参数签名设置:在请求其他接口服务时,也请将地址替换为服务请求地址:http://****/api/WZGYL/scp-supplier-erp+服务相对地址,请参考文档开头服务地址示例按照流程填写header内容请求参数签名代码示例s签名密钥:testKey签名流程:签名java代码示例publicclassTest{publicstaticvoidmain(String[]args)throwsIOException{Stringstr="{\n"+"\"username\":\"admin\",\n"+"\"password\":\"aaa\",\n"+"\"aa\":[1,2,5,6],\n"+"\"bb\":{\n"+"\"aa\":\"bb\",\n"+"\"aaa\":1\n"n"+"\"int\":1,\n"+"\"doube\":1.
2,\n"+"\"boolen\":true\n"清除换行符str=Pattern.
compile("[\t\r\n]").
matcher(str).
replaceAll("");//jaskson解析ObjectMapperOBJECT_MAPPER=newObjectMapper();//转成mapMapjsonNode=OBJECT_MAPPER.
readValue(str,Map.
class);//排序OBJECT_MAPPER.
configure(SerializationFeature.
ORDER_MAP_ENTRIES_BY_KEYS,true);//生成jsonStringstring=OBJECT_MAPPER.
writeValueAsString(jsonNode);//签名密钥StringsignKey="testKey";//HmacSHA265加密Stringencode=DigestUtil.
hmacDegist(DigestUtil.
HmacSHA256,signKey.
getBytes(),string).
toBase64();System.
out.
println(encode);}}关于自动排序,各大JSON框架都有实现,自行适配HmacSHA256加密示例:publicstaticStringhmacDegist(Stringalgorithm,byte[]key,Stringdata){try{//还原密钥,因为密钥是以byte形式为消息传递算法所拥有SecretKeysecretKey=newSecretKeySpec(key,algorithm);//实例化MacMacmac=Mac.
getInstance(secretKey.
getAlgorithm(),"BC");//初始化Macmac.
init(secretKey);//执行消息摘要处理byte[]result=mac.
doFinal(data.
getBytes(StandardCharsets.
UTF_8));//加密后的字符Stringstring=newString(java.
util.
Base64.
getEncoder().
encode(result),StandardCharsets.
UTF_8);returnstring;}catch(Exceptione){thrownewSecurityException(e);}}BouncycastleMaven坐标org.
bouncycastlebcprov-jdk15on1.
55RSA非对称加密代码示例公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVfisoOLrHQTZcAoQgKs36C0tOA4Kn6O6mYTxtBntO9dH/F+qYYXkNw8YJe2qDVIECeZSjgIZvsqItui9sJYNDAlIwW8QUguLjzrP/uJs9XjuniUvvDEEyTDBUOqUUr8164RUgGjt/7GhD5/EPnmir0hnji4bsP3bZX7QK6uOhUwIDAQABJava代码示例:publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException,NoSuchAlgorithmException,InvalidKeySpecException,NoSuchPaddingException,InvalidKeyException,BadPaddingException,IllegalBlockSizeException{StringpublicKey="公钥";StringtestStr="待加密的字符";byte[]data=testStr.
getBytes(Charset.
forName("utf-8"));byte[]keyBytes=Base64Utils.
decode(publicKey);X509EncodedKeySpecx509KeySpec=newX509EncodedKeySpec(keyBytes);KeyFactorykeyFactory=KeyFactory.
getInstance("RSA");PublicKeykey=keyFactory.
generatePublic(x509KeySpec);Ciphercipher=Cipher.
getInstance("RSA/ECB/PKCS1Padding");cipher.
init(Cipher.
ENCRYPT_MODE,key);byte[]result=doFinal(cipher,data,128-11);//加密后的字符Stringstring=newString(java.
util.
Base64.
getEncoder().
encode(result),StandardCharsets.
UTF_8);System.
out.
println(string);}privatestaticbyte[]doFinal(Ciphercipher,byte[]data,intkey_len)throwsBadPaddingException,IllegalBlockSizeException{intinputLen=data.
length,offset=0;byte[]tmp;ByteArrayOutputStreamout=newByteArrayOutputStream(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;}returnout.
toByteArray();}privatestaticintgetTmpArrayLength(intL){intS=128;while(S签名代码参考文档中"请求参数签名代码示例"部分,获取到的sign需要放入到请求报文Header中.
、发出请求前,需要将请求报文body部分进行签名,签名代码参考文档中"请求参数签名代码示例"部分,获取到的sign需要放入到请求报文Header中;并且需要将开始获取到的acces_token需要放入请求报文Header中.
Virtono最近推出了夏季促销活动,为月付、季付、半年付等提供9折优惠码,年付已直接5折,而且下单后在LET回复订单号还能获得双倍内存,不限制付款周期。这是一家成立于2014年的国外VPS主机商,提供VPS和服务器租用等产品,商家支持PayPal、信用卡、支付宝等国内外付款方式,可选数据中心包括罗马尼亚、美国洛杉矶、达拉斯、迈阿密、英国和德国等。下面列出几款VPS主机配置信息,请留意,下列配置中...
老鹰主机HawkHost是个人比较喜欢的海外主机商,如果没有记错的话,大约2012年左右的时候算是比较早提供支付宝付款的主机商。当然这个主机商成立时间更早一些的,由于早期提供支付宝付款后,所以受众用户比较青睐,要知道我们早期购买海外主机是比较麻烦的,信用卡和PAYPAL还没有普及,大家可能只有银联和支付宝,很多人选择海外主机还需要代购。虽然如今很多人建站少了,而且大部分人都用云服务器。但是老鹰主机...
提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...