因公司业务需要,接了许多的第三方话费充值接口,这些接口每个的入参与出参不一致,而我所要负责的就是将这些第三方接口写成一个入参出参一致的程序,提供给主程序。
准备工作
因为之前没有接触过第三方接口,所以在刚开始的时候有些迷茫,不知道从何开始下手。但是知道请求接口是URL请求的时候只要通过程序发送请求到指定的URL就可以了。
整体梳理下思路
- 首先定义一个URL地址方便之后请求,因为在一个第三方接口程序里不可能只有一个URL地址。
- 获取参数,一定要注意第三方接口那边定义的参数以及含义是什么,假如自己定义的话可能会发生错误。
- 数据签名,一般每个接口都有特定的数据签名,有些可能是要经过ASC排序之后再进行对 参数名=值&参数名= … 进行签名,一般都是MD5的32位加密签名,大小写根据第三方那边需要什么什么格式你就根据什么格式来定义签名。我再附上一份我写的时候进行MD5签名的代码供参考。
/**
* TreeMap会将你的put进去的参数名进行排序,所以我这里没有再次进行ASC排序
* key是第三方接口所生成的私钥
* charset 字符集编码,传UTF-8就行了
*/
public static String getDigest(TreeMap<String, String> map,String key, String charset){
StringBuilder sb = new StringBuilder();
for (Map.Entry entry : map.entrySet()) {
sb = sb.append(entry.getKey()).append("=").append(entry.g