帮我吧文档:数据接口:工单:提交工单

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
帮我吧文档:数据接口:工单:提交工单 [2020/05/26 16:35]
admin
帮我吧文档:数据接口:工单:提交工单 [2023/03/10 18:46] (当前版本)
admin
行 32: 行 32:
   *   中文参数UTF-8编码,必须urlencode   *   中文参数UTF-8编码,必须urlencode
  
-3. 签名代码示例PHP版+3. 签名代码示例
 +  *   PHP版
 <code php> <code php>
  
行 80: 行 81:
 </code> </code>
  
 +  *   Java版
 +<code java>
 +
 +import java.util.Collections;
 +import java.util.Comparator;
 +import java.util.Iterator;
 +import java.util.Map;
 +import java.util.Set;
 +import java.util.TreeMap;
 +import java.security.MessageDigest;
 +import java.util.ArrayList;
 +import java.util.List;
 +import java.util.Map.Entry;
 +
 +class Signature{
 +
 +    public String makeSignature(Map<String, String> map){
 +        map.put("private_key", "aef2l3gze982ew");
 +        map.put("timestamp", String.valueOf(System.currentTimeMillis()));
 +        map.put("nonce", "123456");
 +
 +         List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());
 +    
 +         Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
 +            
 +             public int compare(Entry<String, String> o1,
 +                     Entry<String, String> o2) {
 +                 return o1.getValue().compareTo(o2.getValue());
 +             }
 + 
 +         });
 +         String tempStr = "";
 +         for(Map.Entry<String,String> mapping:list){
 +             tempStr += mapping.getValue();
 +         }
 +        return sha1(tempStr);
 +    }
 +
 +    public String sha1(String str){
 +        char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
 +            'a', 'b', 'c', 'd', 'e', 'f' };
 +        try {
 +            MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
 +            mdTemp.update(str.getBytes("UTF-8"));
 +            byte[] md = mdTemp.digest();
 +            int j = md.length;
 +            char buf[] = new char[j * 2];
 +            int k = 0;
 +            for (int i = 0; i < j; i++) {
 +                byte byte0 = md[i];
 +                buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
 +                buf[k++] = hexDigits[byte0 & 0xf];
 +            }
 +            return new String(buf);
 +        } catch (Exception e) {
 +            return null;
 +        }
 +    }
 +
 +    public static void main(String[] args) {
 +
 +        Map<String, String> map = new TreeMap<String, String>();
 +        map.put("mobile", "15564532345");
 +        map.put("authaccount", "dhif948");
 +
 +        Signature signature = new Signature();
 +        String sign = signature.makeSignature(map);
 +
 +        System.out.println(sign);
 +
 +    }
 +}
 +
 +
 +</code>
 4. 最终生成的带签名的url链接示例:  4. 最终生成的带签名的url链接示例: 
 >注: 此链接打开一小时后失效。 >注: 此链接打开一小时后失效。
- +(1)先把params后面的参数加密部分通过base64进行解密\\  
-''http://abtest.bangwo8.com/h.php?params=ZmllbGRfY29sdW1uTmFtZT1zdWJqZWN0LGRlc2NyaXB0LGNvbl9yZWFsTmFtZSxjb25fbW9iaWxlLGNvbl9waG9uZSxjb25fZW1haWwsY29uX1FRLGNvbl9wb3NpdGlvbixjb25fYXV0aGFjY291bnQsY29uX2ZpZWxkXzEsY29tX2NvbXBhbnlOYW1lLGNvbV9hZGRyZXNzLGNvbV93ZW5iZW4sJmZpZWxkX3JlYWRvbmx5PSZmaWVsZF9pbnZpc2libGU9JmZpZWxkX3JlcXVpcmVkPWNvbl9tb2JpbGUsY29uX2VtYWlsLGNvbV9jb21wYW55TmFtZSwmZmllbGRfZGVmYXVsdD0mZmllbGRfbWlubGVuZ3RoPSZmaWVsZF9tYXhsZW5ndGg9JmZpZWxkX3NvcnQ9c3ViamVjdCxkZXNjcmlwdCxjb25fcmVhbE5hbWUsY29uX21vYmlsZSxjb25fcGhvbmUsY29uX2VtYWlsLGNvbl9RUSxjb25fcG9zaXRpb24sY29uX2F1dGhhY2NvdW50LGNvbl9maWVsZF8xLGNvbV9jb21wYW55TmFtZSxjb21fYWRkcmVzcyxjb21fd2VuYmVuLCZmaWVsZF92ZXJpZnk9JmNob3NlVHlwZT0xJnNob3dSZXBseUxpc3Q9MSZhZGRSZXBseT0yJnJJZD05MCZhSWQ9MTYxMzUz&nonce=123456&timestamp=1578463883381&signature=bfc024154979694f0b5850ca882810782e7584c2''+(2)然后在后方拼接上文档中的必要参数\\  
 +(3)最后将params后方部分整体base64加密拼接好链接,就可实现免登录提交工单了\\  
 +''http://abtest.bangwo8.com/h.php?params=ZmllbGRfY29sdW1uTmFtZT1zdWJqZWN0LGRlc2NyaXB0LGNvbl9yZWFsTmFtZSxjb25fbW9iaWxlLGNvbl9waG9uZSxjb25fZW1haWwsY29uX1FRLGNvbl9wb3NpdGlvbixjb25fYXV0aGFjY291bnQsY29uX2ZpZWxkXzEsY29tX2NvbXBhbnlOYW1lLGNvbV9hZGRyZXNzLGNvbV93ZW5iZW4sJmZpZWxkX3JlYWRvbmx5PSZmaWVsZF9pbnZpc2libGU9JmZpZWxkX3JlcXVpcmVkPWNvbl9tb2JpbGUsY29uX2VtYWlsLGNvbV9jb21wYW55TmFtZSwmZmllbGRfZGVmYXVsdD0mZmllbGRfbWlubGVuZ3RoPSZmaWVsZF9tYXhsZW5ndGg9JmZpZWxkX3NvcnQ9c3ViamVjdCxkZXNjcmlwdCxjb25fcmVhbE5hbWUsY29uX21vYmlsZSxjb25fcGhvbmUsY29uX2VtYWlsLGNvbl9RUSxjb25fcG9zaXRpb24sY29uX2F1dGhhY2NvdW50LGNvbl9maWVsZF8xLGNvbV9jb21wYW55TmFtZSxjb21fYWRkcmVzcyxjb21fd2VuYmVuLCZmaWVsZF92ZXJpZnk9JmNob3NlVHlwZT0xJnNob3dSZXBseUxpc3Q9MSZhZGRSZXBseT0yJnJJZD05MCZhSWQ9MTYxMzUzJm5vbmNlPTEyMzQ1NiZ0aW1lc3RhbXA9MTU3ODQ2Mzg4MzM4MSZzaWduYXR1cmU9YmZjMDI0MTU0OTc5Njk0ZjBiNTg1MGNhODgyODEwNzgyZTc1ODRjMg==''
  
  

页面工具