import{_ as n,c as a,o as s,a as p}from"./app.2005ae41.js";const g='{"title":"\u7B7E\u540D","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u7B7E\u540D","slug":"\u7B7E\u540D"}],"relativePath":"views/interfaceRules/sign.md"}',t={},o=p(`

\u7B7E\u540D

\u76EE\u7684

\u4E3A\u4E86\u9632\u6B62API\u8C03\u7528\u8FC7\u7A0B\u4E2D\u6570\u636E\u88AB\u6076\u610F\u7BE1\u6539\uFF0C\u8C03\u7528\u4EFB\u4F55\u4E00\u4E2AAPI\u90FD\u9700\u8981\u6309\u7167\u89C4\u5219\u8FDB\u884C\u7B7E\u540D\uFF0C\u5F00\u653E\u5E73\u53F0\u670D\u52A1\u7AEF\u4F1A\u6839\u636E\u540C\u4E00\u89C4\u5219\u5BF9\u7B7E\u540D\u8FDB\u884C\u9A8C\u8BC1\uFF0C\u7B7E\u540D\u4E0D\u5408\u6CD5\u7684\u8BF7\u6C42\u5C06\u4F1A\u88AB\u62D2\u7EDD\u3002

\u89C4\u5219
  1. \u5C06\u53C2\u6570(sign\u9664\u5916)\u6309\u7167\u53C2\u6570\u540D\u7684\u5B57\u5178\u987A\u5E8F\u6392\u5E8F
  2. \u5C06\u53C2\u6570\u4F7F\u7528\u952E\u503C\u5BF9\u7684\u683C\u5F0F(\u5373key1=value1&key2=value2...)\u62FC\u63A5\u6210\u5B57\u7B26\u4E32A
  3. \u5728\u5B57\u7B26\u4E32A\u6700\u540E\u62FC\u63A5\u4E0AappSecret\u5F97\u5230\u6700\u7EC8\u7684\u5F85\u7B7E\u540D\u5B57\u7B26\u4E32B
  4. \u5BF9\u5F85\u7B7E\u540D\u5B57\u7B26\u4E32B\u8FDB\u884CMD5\u8FD0\u7B97,\u5F97\u5230\u5B57\u7B26\u4E32C
  5. \u6700\u540E\u5C06\u5B57\u7B26\u4E32C\u8F6C\u6362\u4E3A\u5927\u5199, \u5373\u5F97\u5230\u7B7E\u540D\u503C, signValue
\u793A\u4F8B

appSecret=test001 \u7CFB\u7EDF\u53C2\u6570: appId=100010 timeStamp=1651215937000 \u4E1A\u52A1\u53C2\u6570: shopName=\u597D\u53C8\u591A\u8D85\u5E02 empty=

\u53C2\u6570\u62FC\u63A5\u6210\u5B57\u7B26\u4E32A: appId=100010&shopName=\u597D\u53C8\u591A\u8D85\u5E02&timeStamp=1651215937000

\u5B57\u7B26\u4E32A\u7684\u672B\u5C3E\u62FC\u63A5appSecret, \u7EC4\u88C5\u6210\u5B57\u7B26\u4E32B: appId=100010&shopName=\u597D\u53C8\u591A\u8D85\u5E02&timeStamp=1651215937000&appSecret=test001

\u5B57\u7B26\u4E32B\u8FDB\u884CMD5\u8FD0\u7B97\u5F97\u5230\u5B57\u7B26\u4E32C: MD5(appId=100010&shopName=\u597D\u53C8\u591A\u8D85\u5E02&timeStamp=1651215937000&appSecret=test001)

\u5B57\u7B26\u4E32C\u8F6C\u6210\u5168\u5927\u5199, \u5F97\u5230\u7B7E\u540DsignValue: MD5(appId=100010&shopName=\u597D\u53C8\u591A\u8D85\u5E02&timeStamp=1651215937000&appSecret=test001).toUpperCase()

\u7B7E\u540D\u7B97\u6CD5\u5982\u4E0B(Java\u4EE3\u7801\u793A\u4F8B)

private static String getSignValue(Map<String, Object> paramMap, String appSecret) {
    Set<String> keySet = paramMap.keySet();
    StringBuilder param = new StringBuilder(20 * keySet.size());
    String[] keys = keySet.toArray(new String[keySet.size()]);
    Arrays.sort(keys);
    try {
        for (String key : keys) {
            Object value = paramMap.get(key);
            // \u6392\u9664\u503C\u4E3Anull\u7684\u60C5\u51B5
            if (value != null) {
                param.append(URLEncoder.encode(key, "UTF-8")).append("=").append(value).append("&");
            }
        }
        param.append("appSecret").append("=").append(URLEncoder.encode(appSecret, "UTF-8"));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return Md5Util.md5(param.toString()).toUpperCase();
}
`,13),e=[o];function c(u,l,i,k,r,d){return s(),a("div",null,e)}var S=n(t,[["render",c]]);export{g as __pageData,S as default};