Funny пре 3 година
комит
dcc5a1d76c
100 измењених фајлова са 2862 додато и 0 уклоњено
  1. 115 0
      docs/.vitepress/config.js
  2. 1 0
      docs/.vitepress/dist/assets/app.2005ae41.js
  3. 1 0
      docs/.vitepress/dist/assets/index.md.7b0bfa60.js
  4. 1 0
      docs/.vitepress/dist/assets/index.md.7b0bfa60.lean.js
  5. 1 0
      docs/.vitepress/dist/assets/style.b8a566d5.css
  6. 23 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderCancel.md.72344679.js
  7. 1 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderCancel.md.72344679.lean.js
  8. 24 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderCreate.md.c1283b6d.js
  9. 1 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderCreate.md.c1283b6d.lean.js
  10. 38 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderPush.md.519e56a5.js
  11. 1 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderPush.md.519e56a5.lean.js
  12. 18 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderStatusNotice.md.d121316e.js
  13. 1 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderStatusNotice.md.d121316e.lean.js
  14. 67 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderValuation.md.955a5a5f.js
  15. 1 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_orderValuation.md.955a5a5f.lean.js
  16. 26 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_riderLocation.md.52a1df20.js
  17. 1 0
      docs/.vitepress/dist/assets/views_apiList_orderInterface_riderLocation.md.52a1df20.lean.js
  18. 22 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_deliveryStatus.md.3395e79e.js
  19. 1 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_deliveryStatus.md.3395e79e.lean.js
  20. 37 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_shopCreate.md.ff32fc39.js
  21. 1 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_shopCreate.md.ff32fc39.lean.js
  22. 38 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_shopDelivery.md.4edf6f86.js
  23. 1 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_shopDelivery.md.4edf6f86.lean.js
  24. 41 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_shopUpdate.md.625b534e.js
  25. 1 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_shopUpdate.md.625b534e.lean.js
  26. 11 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_statusSync.md.cdd3099e.js
  27. 1 0
      docs/.vitepress/dist/assets/views_apiList_shopInterface_statusSync.md.cdd3099e.lean.js
  28. 24 0
      docs/.vitepress/dist/assets/views_apiList_tokenRefresh.md.764c6253.js
  29. 1 0
      docs/.vitepress/dist/assets/views_apiList_tokenRefresh.md.764c6253.lean.js
  30. 1 0
      docs/.vitepress/dist/assets/views_appendix_businessCategory.md.d53c4fa6.js
  31. 1 0
      docs/.vitepress/dist/assets/views_appendix_businessCategory.md.d53c4fa6.lean.js
  32. 1 0
      docs/.vitepress/dist/assets/views_appendix_deliveryPlatform.md.e386ba0e.js
  33. 1 0
      docs/.vitepress/dist/assets/views_appendix_deliveryPlatform.md.e386ba0e.lean.js
  34. 1 0
      docs/.vitepress/dist/assets/views_appendix_errorCode.md.dc389eed.js
  35. 1 0
      docs/.vitepress/dist/assets/views_appendix_errorCode.md.dc389eed.lean.js
  36. 1 0
      docs/.vitepress/dist/assets/views_documentDescription_index.md.8b7ad3df.js
  37. 1 0
      docs/.vitepress/dist/assets/views_documentDescription_index.md.8b7ad3df.lean.js
  38. 20 0
      docs/.vitepress/dist/assets/views_interfaceRules_sign.md.c9e83678.js
  39. 1 0
      docs/.vitepress/dist/assets/views_interfaceRules_sign.md.c9e83678.lean.js
  40. BIN
      docs/.vitepress/dist/favicon.ico
  41. 1 0
      docs/.vitepress/dist/hashmap.json
  42. 24 0
      docs/.vitepress/dist/index.html
  43. 46 0
      docs/.vitepress/dist/views/apiList/orderInterface/orderCancel.html
  44. 47 0
      docs/.vitepress/dist/views/apiList/orderInterface/orderCreate.html
  45. 61 0
      docs/.vitepress/dist/views/apiList/orderInterface/orderPush.html
  46. 41 0
      docs/.vitepress/dist/views/apiList/orderInterface/orderStatusNotice.html
  47. 90 0
      docs/.vitepress/dist/views/apiList/orderInterface/orderValuation.html
  48. 49 0
      docs/.vitepress/dist/views/apiList/orderInterface/riderLocation.html
  49. 45 0
      docs/.vitepress/dist/views/apiList/shopInterface/deliveryStatus.html
  50. 60 0
      docs/.vitepress/dist/views/apiList/shopInterface/shopCreate.html
  51. 61 0
      docs/.vitepress/dist/views/apiList/shopInterface/shopDelivery.html
  52. 64 0
      docs/.vitepress/dist/views/apiList/shopInterface/shopUpdate.html
  53. 34 0
      docs/.vitepress/dist/views/apiList/shopInterface/statusSync.html
  54. 47 0
      docs/.vitepress/dist/views/apiList/tokenRefresh.html
  55. 24 0
      docs/.vitepress/dist/views/appendix/businessCategory.html
  56. 24 0
      docs/.vitepress/dist/views/appendix/deliveryPlatform.html
  57. 24 0
      docs/.vitepress/dist/views/appendix/errorCode.html
  58. 24 0
      docs/.vitepress/dist/views/documentDescription/index.html
  59. 43 0
      docs/.vitepress/dist/views/interfaceRules/sign.html
  60. 3 0
      docs/.vitepress/theme/custom.styl
  61. 4 0
      docs/.vitepress/theme/index.js
  62. 19 0
      docs/index.md
  63. BIN
      docs/public/favicon.ico
  64. 68 0
      docs/views/apiList/orderInterface/orderCancel.md
  65. 75 0
      docs/views/apiList/orderInterface/orderCreate.md
  66. 112 0
      docs/views/apiList/orderInterface/orderPush.md
  67. 61 0
      docs/views/apiList/orderInterface/orderStatusNotice.md
  68. 153 0
      docs/views/apiList/orderInterface/orderValuation.md
  69. 79 0
      docs/views/apiList/orderInterface/riderLocation.md
  70. 67 0
      docs/views/apiList/shopInterface/deliveryStatus.md
  71. 101 0
      docs/views/apiList/shopInterface/shopCreate.md
  72. 96 0
      docs/views/apiList/shopInterface/shopDelivery.md
  73. 108 0
      docs/views/apiList/shopInterface/shopUpdate.md
  74. 46 0
      docs/views/apiList/shopInterface/statusSync.md
  75. 75 0
      docs/views/apiList/tokenRefresh.md
  76. 16 0
      docs/views/appendix/businessCategory.md
  77. 14 0
      docs/views/appendix/deliveryPlatform.md
  78. 35 0
      docs/views/appendix/errorCode.md
  79. 17 0
      docs/views/documentDescription/index.md
  80. 60 0
      docs/views/interfaceRules/sign.md
  81. 15 0
      node_modules/.bin/atob
  82. 17 0
      node_modules/.bin/atob.cmd
  83. 18 0
      node_modules/.bin/atob.ps1
  84. 15 0
      node_modules/.bin/esbuild
  85. 17 0
      node_modules/.bin/esbuild.cmd
  86. 18 0
      node_modules/.bin/esbuild.ps1
  87. 15 0
      node_modules/.bin/nanoid
  88. 17 0
      node_modules/.bin/nanoid.cmd
  89. 18 0
      node_modules/.bin/nanoid.ps1
  90. 15 0
      node_modules/.bin/parser
  91. 17 0
      node_modules/.bin/parser.cmd
  92. 18 0
      node_modules/.bin/parser.ps1
  93. 15 0
      node_modules/.bin/resolve
  94. 17 0
      node_modules/.bin/resolve.cmd
  95. 18 0
      node_modules/.bin/resolve.ps1
  96. 15 0
      node_modules/.bin/rollup
  97. 17 0
      node_modules/.bin/rollup.cmd
  98. 18 0
      node_modules/.bin/rollup.ps1
  99. 15 0
      node_modules/.bin/stylus
  100. 0 0
      node_modules/.bin/stylus.cmd

+ 115 - 0
docs/.vitepress/config.js

@@ -0,0 +1,115 @@
+module.exports = {
+  title: '文档中心',
+  description: '优巨引擎·文档中心',
+  head: [
+    [
+      'meta',
+      {
+        name: 'viewport',
+        content:
+          'width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no',
+      },
+    ],
+    ['meta', { name: 'keywords', content: '文档中心 猎豹 开放平台' }],
+    ['link', { rel: 'icon', href: '/favicon.ico' }],
+  ],
+  themeConfig: {
+    search: true,
+    searchMaxSuggestions: 10,
+    lastUpdated: 'Last Updated',
+    // 启动页面丝滑滚动
+    smoothScroll: true,
+    nextLinks: true,
+    prevLinks: true,
+    sidebar: {
+      '/': [
+        {
+          text: '文档说明',
+          link: '../index'
+        },
+        {
+          text: '接口规则',
+          children: [
+            { text: '签名', link: '../views/interfaceRules/sign' },
+          ]
+        },
+        {
+          text: 'API列表',
+          children: [
+            { text: 'token刷新', link: '../views/apiList/tokenRefresh' },
+            {
+              text: '门店相关', children: [
+                {
+                  text: '创建门店',
+                  link: '../views/apiList/shopInterface/shopCreate'
+                },
+                {
+                  text: '更新门店',
+                  link: '../views/apiList/shopInterface/shopUpdate'
+                },
+                {
+                  text: '门店运力查询',
+                  link: '../views/apiList/shopInterface/shopDelivery'
+                },
+                {
+                  text: '门店运力禁用',
+                  link: '../views/apiList/shopInterface/deliveryStatus'
+                },
+                {
+                  text: '门店运力状态同步',
+                  link: '../views/apiList/shopInterface/statusSync'
+                },
+              ]
+            },
+            {
+              text: '订单相关', children: [
+                {
+                  text: '订单计费',
+                  link: '../views/apiList/orderInterface/orderValuation'
+                },
+                {
+                  text: '创建订单',
+                  link: '../views/apiList/orderInterface/orderCreate'
+                },
+                {
+                  text: '取消订单',
+                  link: '../views/apiList/orderInterface/orderCancel'
+                },
+                {
+                  text: '推送订单',
+                  link: '../views/apiList/orderInterface/orderPush'
+                },
+                {
+                  text: '骑手位置',
+                  link: '../views/apiList/orderInterface/riderLocation'
+                },
+                {
+                  text: '订单状态通知',
+                  link: '../views/apiList/orderInterface/orderStatusNotice'
+                },
+
+              ]
+            }
+          ]
+        },
+        {
+          text: '附录',
+          children: [
+            { text: '经营品类', link: '../views/appendix/businessCategory' },
+            { text: '运力平台', link: '../views/appendix/deliveryPlatform' },
+            { text: '错误编码', link: '../views/appendix/errorCode' }
+          ]
+        }
+      ],
+    },
+    author: 'Funny<15151556015@163.com>',
+    nav: [
+      { text: '首页', link: '/' },
+      // { text: '分类', link: '/tags' },
+    ],
+  },
+  dest: './dist',
+  plugins: [
+    '@vuepress/back-to-top',          // 返回顶部插件
+  ],
+}

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
docs/.vitepress/dist/assets/app.2005ae41.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
docs/.vitepress/dist/assets/index.md.7b0bfa60.js


+ 1 - 0
docs/.vitepress/dist/assets/index.md.7b0bfa60.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as a,a as d}from"./app.2005ae41.js";const x='{"title":"\u6587\u6863\u8BF4\u660E","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u6587\u6863\u8BF4\u660E","slug":"\u6587\u6863\u8BF4\u660E"}],"relativePath":"index.md"}',r={},i=d("",9),l=[i];function n(s,h,o,c,_,p){return a(),e("div",null,l)}var g=t(r,[["render",n]]);export{x as __pageData,g as default};

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
docs/.vitepress/dist/assets/style.b8a566d5.css


Разлика између датотеке није приказан због своје велике величине
+ 23 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderCancel.md.72344679.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderCancel.md.72344679.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a as l}from"./app.2005ae41.js";const x='{"title":"\u53D6\u6D88\u8BA2\u5355","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u53D6\u6D88\u8BA2\u5355","slug":"\u53D6\u6D88\u8BA2\u5355"}],"relativePath":"views/apiList/orderInterface/orderCancel.md"}',a={},n=l("",15),r=[n];function i(o,s,h,u,c,g){return d(),e("div",null,r)}var q=t(a,[["render",i]]);export{x as __pageData,q as default};

Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderCreate.md.c1283b6d.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderCreate.md.c1283b6d.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a}from"./app.2005ae41.js";const x='{"title":"\u521B\u5EFA\u8BA2\u5355","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u521B\u5EFA\u8BA2\u5355","slug":"\u521B\u5EFA\u8BA2\u5355"}],"relativePath":"views/apiList/orderInterface/orderCreate.md"}',l={},r=a("",17),n=[r];function i(o,s,h,u,g,f){return d(),e("div",null,n)}var y=t(l,[["render",i]]);export{x as __pageData,y as default};

Разлика између датотеке није приказан због своје велике величине
+ 38 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderPush.md.519e56a5.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderPush.md.519e56a5.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a as l}from"./app.2005ae41.js";const h='{"title":"\u63A8\u9001\u8BA2\u5355","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u63A8\u9001\u8BA2\u5355","slug":"\u63A8\u9001\u8BA2\u5355"}],"relativePath":"views/apiList/orderInterface/orderPush.md"}',a={},n=l("",17),r=[n];function i(s,o,g,u,f,y){return d(),e("div",null,r)}var q=t(a,[["render",i]]);export{h as __pageData,q as default};

Разлика између датотеке није приказан због своје велике величине
+ 18 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderStatusNotice.md.d121316e.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderStatusNotice.md.d121316e.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a as l}from"./app.2005ae41.js";const y='{"title":"\u8BA2\u5355\u72B6\u6001\u901A\u77E5","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u8BA2\u5355\u72B6\u6001\u901A\u77E5","slug":"\u8BA2\u5355\u72B6\u6001\u901A\u77E5"}],"relativePath":"views/apiList/orderInterface/orderStatusNotice.md"}',a={},n=l("",14),i=[n];function r(o,s,u,g,h,f){return d(),e("div",null,i)}var c=t(a,[["render",r]]);export{y as __pageData,c as default};

Разлика између датотеке није приказан због своје велике величине
+ 67 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderValuation.md.955a5a5f.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_orderValuation.md.955a5a5f.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a as l}from"./app.2005ae41.js";const x='{"title":"\u8BA2\u5355\u8BA1\u8D39","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u8BA2\u5355\u8BA1\u8D39","slug":"\u8BA2\u5355\u8BA1\u8D39"}],"relativePath":"views/apiList/orderInterface/orderValuation.md"}',n={},a=l("",19),i=[a];function o(r,s,u,g,y,q){return d(),e("div",null,i)}var h=t(n,[["render",o]]);export{x as __pageData,h as default};

Разлика између датотеке није приказан због своје велике величине
+ 26 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_riderLocation.md.52a1df20.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_orderInterface_riderLocation.md.52a1df20.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a as l}from"./app.2005ae41.js";const x='{"title":"\u83B7\u53D6\u9A91\u624B\u4F4D\u7F6E","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u83B7\u53D6\u9A91\u624B\u4F4D\u7F6E","slug":"\u83B7\u53D6\u9A91\u624B\u4F4D\u7F6E"}],"relativePath":"views/apiList/orderInterface/riderLocation.md"}',a={},n=l("",17),r=[n];function i(o,s,h,u,g,f){return d(),e("div",null,r)}var y=t(a,[["render",i]]);export{x as __pageData,y as default};

Разлика између датотеке није приказан због своје велике величине
+ 22 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_deliveryStatus.md.3395e79e.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_deliveryStatus.md.3395e79e.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a}from"./app.2005ae41.js";const x='{"title":"\u95E8\u5E97\u8FD0\u529B\u7981\u7528","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u95E8\u5E97\u8FD0\u529B\u7981\u7528","slug":"\u95E8\u5E97\u8FD0\u529B\u7981\u7528"}],"relativePath":"views/apiList/shopInterface/deliveryStatus.md"}',l={},i=a("",15),n=[i];function r(s,o,h,u,c,g){return d(),e("div",null,n)}var y=t(l,[["render",r]]);export{x as __pageData,y as default};

Разлика између датотеке није приказан због своје велике величине
+ 37 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_shopCreate.md.ff32fc39.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_shopCreate.md.ff32fc39.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a as l}from"./app.2005ae41.js";const q='{"title":"\u95E8\u5E97\u521B\u5EFA\u63A5\u53E3","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u95E8\u5E97\u521B\u5EFA\u63A5\u53E3","slug":"\u95E8\u5E97\u521B\u5EFA\u63A5\u53E3"}],"relativePath":"views/apiList/shopInterface/shopCreate.md"}',a={},n=l("",17),i=[n];function o(r,s,u,g,h,f){return d(),e("div",null,i)}var c=t(a,[["render",o]]);export{q as __pageData,c as default};

Разлика између датотеке није приказан због своје велике величине
+ 38 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_shopDelivery.md.4edf6f86.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_shopDelivery.md.4edf6f86.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a}from"./app.2005ae41.js";const y='{"title":"\u95E8\u5E97\u8FD0\u529B\u67E5\u8BE2","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u95E8\u5E97\u8FD0\u529B\u67E5\u8BE2","slug":"\u95E8\u5E97\u8FD0\u529B\u67E5\u8BE2"}],"relativePath":"views/apiList/shopInterface/shopDelivery.md"}',l={},n=a("",19),i=[n];function o(r,s,h,u,q,g){return d(),e("div",null,i)}var c=t(l,[["render",o]]);export{y as __pageData,c as default};

Разлика између датотеке није приказан због своје велике величине
+ 41 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_shopUpdate.md.625b534e.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_shopUpdate.md.625b534e.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a as l}from"./app.2005ae41.js";const x='{"title":"\u95E8\u5E97\u66F4\u65B0\u63A5\u53E3","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u95E8\u5E97\u66F4\u65B0\u63A5\u53E3","slug":"\u95E8\u5E97\u66F4\u65B0\u63A5\u53E3"}],"relativePath":"views/apiList/shopInterface/shopUpdate.md"}',a={},n=l("",17),i=[n];function o(s,r,u,g,q,h){return d(),e("div",null,i)}var c=t(a,[["render",o]]);export{x as __pageData,c as default};

Разлика између датотеке није приказан због своје велике величине
+ 11 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_statusSync.md.cdd3099e.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_shopInterface_statusSync.md.cdd3099e.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a}from"./app.2005ae41.js";const x='{"title":"\u95E8\u5E97\u8FD0\u529B\u72B6\u6001\u540C\u6B65","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u95E8\u5E97\u8FD0\u529B\u72B6\u6001\u540C\u6B65","slug":"\u95E8\u5E97\u8FD0\u529B\u72B6\u6001\u540C\u6B65"}],"relativePath":"views/apiList/shopInterface/statusSync.md"}',l={},i=a("",14),n=[i];function s(r,o,h,u,c,f){return d(),e("div",null,n)}var y=t(l,[["render",s]]);export{x as __pageData,y as default};

Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
docs/.vitepress/dist/assets/views_apiList_tokenRefresh.md.764c6253.js


+ 1 - 0
docs/.vitepress/dist/assets/views_apiList_tokenRefresh.md.764c6253.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a}from"./app.2005ae41.js";const x='{"title":"token\u5237\u65B0","description":"","frontmatter":{},"headers":[{"level":2,"title":"token\u5237\u65B0","slug":"token\u5237\u65B0"}],"relativePath":"views/apiList/tokenRefresh.md"}',l={},n=a("",17),r=[n];function o(i,s,h,u,f,c){return d(),e("div",null,r)}var q=t(l,[["render",o]]);export{x as __pageData,q as default};

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
docs/.vitepress/dist/assets/views_appendix_businessCategory.md.d53c4fa6.js


+ 1 - 0
docs/.vitepress/dist/assets/views_appendix_businessCategory.md.d53c4fa6.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as l,a as d}from"./app.2005ae41.js";const c='{"title":"\u7ECF\u8425\u54C1\u7C7B","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u7ECF\u8425\u54C1\u7C7B","slug":"\u7ECF\u8425\u54C1\u7C7B"}],"relativePath":"views/appendix/businessCategory.md"}',a={},s=d("",2),r=[s];function n(i,f,x,g,y,_){return l(),e("div",null,r)}var h=t(a,[["render",n]]);export{c as __pageData,h as default};

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
docs/.vitepress/dist/assets/views_appendix_deliveryPlatform.md.e386ba0e.js


+ 1 - 0
docs/.vitepress/dist/assets/views_appendix_deliveryPlatform.md.e386ba0e.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as l,a as d}from"./app.2005ae41.js";const c='{"title":"\u8FD0\u529B\u5E73\u53F0","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u8FD0\u529B\u5E73\u53F0","slug":"\u8FD0\u529B\u5E73\u53F0"}],"relativePath":"views/appendix/deliveryPlatform.md"}',a={},r=d("",2),s=[r];function i(n,f,x,y,_,g){return l(),e("div",null,s)}var h=t(a,[["render",i]]);export{c as __pageData,h as default};

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
docs/.vitepress/dist/assets/views_appendix_errorCode.md.dc389eed.js


+ 1 - 0
docs/.vitepress/dist/assets/views_appendix_errorCode.md.dc389eed.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as l,a as d}from"./app.2005ae41.js";const c='{"title":"\u9519\u8BEF\u7F16\u7801","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u9519\u8BEF\u7F16\u7801","slug":"\u9519\u8BEF\u7F16\u7801"}],"relativePath":"views/appendix/errorCode.md"}',a={},r=d("",2),s=[r];function i(n,f,x,g,y,o){return l(),e("div",null,s)}var h=t(a,[["render",i]]);export{c as __pageData,h as default};

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
docs/.vitepress/dist/assets/views_documentDescription_index.md.8b7ad3df.js


+ 1 - 0
docs/.vitepress/dist/assets/views_documentDescription_index.md.8b7ad3df.lean.js

@@ -0,0 +1 @@
+import{_ as t,c as e,o as a,a as n}from"./app.2005ae41.js";const f='{"title":"\u8BF7\u6C42\u89C4\u5219:","description":"","frontmatter":{},"headers":[],"relativePath":"views/documentDescription/index.md"}',r={},s=n("",5),d=[s];function o(l,i,p,_,c,g){return a(),e("div",null,d)}var x=t(r,[["render",o]]);export{f as __pageData,x as default};

Разлика између датотеке није приказан због своје велике величине
+ 20 - 0
docs/.vitepress/dist/assets/views_interfaceRules_sign.md.c9e83678.js


+ 1 - 0
docs/.vitepress/dist/assets/views_interfaceRules_sign.md.c9e83678.lean.js

@@ -0,0 +1 @@
+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("",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};

BIN
docs/.vitepress/dist/favicon.ico


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
docs/.vitepress/dist/hashmap.json


Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
docs/.vitepress/dist/index.html


Разлика између датотеке није приказан због своје велике величине
+ 46 - 0
docs/.vitepress/dist/views/apiList/orderInterface/orderCancel.html


Разлика између датотеке није приказан због своје велике величине
+ 47 - 0
docs/.vitepress/dist/views/apiList/orderInterface/orderCreate.html


Разлика између датотеке није приказан због своје велике величине
+ 61 - 0
docs/.vitepress/dist/views/apiList/orderInterface/orderPush.html


Разлика између датотеке није приказан због своје велике величине
+ 41 - 0
docs/.vitepress/dist/views/apiList/orderInterface/orderStatusNotice.html


Разлика између датотеке није приказан због своје велике величине
+ 90 - 0
docs/.vitepress/dist/views/apiList/orderInterface/orderValuation.html


Разлика између датотеке није приказан због своје велике величине
+ 49 - 0
docs/.vitepress/dist/views/apiList/orderInterface/riderLocation.html


Разлика између датотеке није приказан због своје велике величине
+ 45 - 0
docs/.vitepress/dist/views/apiList/shopInterface/deliveryStatus.html


Разлика између датотеке није приказан због своје велике величине
+ 60 - 0
docs/.vitepress/dist/views/apiList/shopInterface/shopCreate.html


Разлика између датотеке није приказан због своје велике величине
+ 61 - 0
docs/.vitepress/dist/views/apiList/shopInterface/shopDelivery.html


Разлика између датотеке није приказан због своје велике величине
+ 64 - 0
docs/.vitepress/dist/views/apiList/shopInterface/shopUpdate.html


Разлика између датотеке није приказан због своје велике величине
+ 34 - 0
docs/.vitepress/dist/views/apiList/shopInterface/statusSync.html


Разлика између датотеке није приказан због своје велике величине
+ 47 - 0
docs/.vitepress/dist/views/apiList/tokenRefresh.html


Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
docs/.vitepress/dist/views/appendix/businessCategory.html


Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
docs/.vitepress/dist/views/appendix/deliveryPlatform.html


Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
docs/.vitepress/dist/views/appendix/errorCode.html


Разлика између датотеке није приказан због своје велике величине
+ 24 - 0
docs/.vitepress/dist/views/documentDescription/index.html


Разлика између датотеке није приказан због своје велике величине
+ 43 - 0
docs/.vitepress/dist/views/interfaceRules/sign.html


+ 3 - 0
docs/.vitepress/theme/custom.styl

@@ -0,0 +1,3 @@
+.container{
+  max-width: 60rem !important;
+}

+ 4 - 0
docs/.vitepress/theme/index.js

@@ -0,0 +1,4 @@
+import DefaultTheme from 'vitepress/theme'
+import './custom.styl'
+
+export default DefaultTheme

+ 19 - 0
docs/index.md

@@ -0,0 +1,19 @@
+## 文档说明
+
+##### 阅读对象:
+  本文阅读对象:需接入配送系统的技术架构师、研发工程师、测试工程师等。
+
+##### 接入说明:
+  1. 填写资料申请 appid 、appsecret 和token
+  2. 接口对接(测试环境和生产环境回调地址需单独设置)
+  3. 应用申请上线获取生产环境的appid 、appsecret 和token
+  
+##### 调用流程:
+  填充参数 > 生成签名 > 拼装HTTP请求 > 发起HTTP请求> 得到HTTP响应 > 解释json结果
+  
+##### 请求规则:
+  |规则|描述|
+|:----    |:---|
+|请求方式 |POST |
+|参数格式 |application/json  |
+|字符编码     |统一采用UTF-8字符编码|

BIN
docs/public/favicon.ico


+ 68 - 0
docs/views/apiList/orderInterface/orderCancel.md

@@ -0,0 +1,68 @@
+## 取消订单
+
+##### 请求URL
+- ` /api/order/cancel `
+  
+##### 请求方式
+- POST 
+
+##### 参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)    |
+|sign     |是  |string | 加签密文    |
+|outOrderSn     |是  |string | 接入方订单编号(唯一标识)    |
+|orderSn     |是  |string | 猎豹订单号    |
+|cancelType     |是  |int | 取消类型:1->商家取消,4->用户取消    |
+|cancelReason     |是  |string | 取消原因    |
+
+##### 请求示例 
+
+``` 
+  {
+    "appId": "100001",
+    "timeStamp" : 1647919332000,
+    "sign": "A6015AEA071BED6BBFFAE93018DE8820",
+    "outOrderSn": "210925689333289",
+	"orderSn": "210927112635735750",
+	"cancelType": "1",
+	"cancelReason" : "计划有变,不需要配送"
+}
+```
+
+##### 返回参数说明 
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|code     |是  |int | 状态码:0-成功 其他为错误    |
+|msg  |是  |string | 错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息) |
+|data     |是  |string | 业务数据    |
+
+
+##### 返回示例 
+
+``` 
+# 成功
+{
+	"code": 0,
+	"msg": "SUCCESS",
+	"data": null
+}
+
+# 失败
+{
+	"code": 1,
+	"msg": "订单不存在",
+	"data": null
+}
+```
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+

+ 75 - 0
docs/views/apiList/orderInterface/orderCreate.md

@@ -0,0 +1,75 @@
+## 创建订单
+
+##### 请求URL
+- ` /api/order/create `
+  
+##### 请求方式
+- POST 
+
+##### 参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)    |
+|sign     |是  |string | 加签密文    |
+|outOrderSn     |是  |string | 接入方订单编号(唯一标识)    |
+|deliveryIdStr     |是  |string | 下单运力id,多个用英文逗号拼接    |
+
+##### 请求示例 
+
+``` 
+  {
+    "appId": "100001",
+    "timeStamp" : 1647919332000,
+    "sign": "A6015AEA071BED6BBFFAE93018DE8820",
+	"outOrderSn": "2161313407662810813",
+	"deliveryIdStr": "7, 8, 9"
+}
+```
+
+##### 返回参数说明 
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|code     |是  |int | 状态码:0-成功 其他为错误    |
+|msg  |是  |string | 错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息) |
+|data     |是  |object | 业务数据    |
+
+
+##### code为0时返回下列业务数据 
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|outOrderSn |是 | string   |接入方订单编号(唯一标识)  |
+|orderSn |是  |string |     猎豹订单号|
+
+
+##### 返回示例 
+
+``` 
+# 成功
+  {
+	"code": 0,
+	"msg": "SUCCESS",
+    "data": {
+		"outOrderSn": "2161313407662810813",
+		"orderSn": "210927103545271041"
+	}
+  }
+  
+  # 失败
+  {
+	"code": 1,
+	"msg": "计价超时,下单失败,请重新计价",
+    "data": null
+  }
+```
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+

+ 112 - 0
docs/views/apiList/orderInterface/orderPush.md

@@ -0,0 +1,112 @@
+## 推送订单
+
+##### 请求URL
+- ` /api/order/push`
+  
+##### 请求方式
+- POST 
+
+##### 参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)    |
+|sign     |是  |string | 加签密文    |
+|outOrderSn     |是  |string | 接入方订单编号(唯一标识),最长不超过32个字符    |
+|categoryId     |是  |int | 物品ID,详情见附录-经营品类    |
+|weight     |是  |int | 物品重量,单位KG,范围1-50    |
+|remark     |否  |string | 订单备注    |
+|receiverName     |是  |string | 收件人名称,最长不超过50个字符    |
+|receiverPhone     |是  |string | 收件人联系电话,最长不超过40个字符    |
+|receiverProvinceName     |是  |string | 收件人所在省,最长不超过30个字符    |
+|receiverCityName     |是  |string | 收件人所在市,最长不超过30个字符    |
+|receiverDistrictName     |否  |string | 收件人所在区,最长不超过40个字符    |
+|receiverAddress     |是  |string | 收件人详细地址,最长不超过150个字符    |
+|receiverHouseNumber     |否  |string | 收件人门牌号,最长不超过30个字符    |
+|receiverLng     |是  |string | 收件人经度,火星坐标系,最长不超过40个字符    |
+|receiverLat     |是  |string | 收件人纬度,火星坐标系,最长不超过40个字符    |
+|receiverCityCode     |是  |string | 收件人城市code,最长不超过30个字符    |
+|shopCode     |否  |string | 猎豹AI门店编号,最长不超过45个字符    |
+|sendName     |特殊必填  |string | 发件人名称,当传入shopCode门店编号时,不必填,根据门店信息发单,最长不超过50个字符    |
+|sendPhone     |特殊必填  |string | 发件人联系电话,当传入shopCode门店编号时,不必填,根据门店信息发单,最长不超过40个字符    |
+|sendProvinceName     |特殊必填  |string | 发件人所在省,当传入shopCode门店编号时,不必填,根据门店信息发单,最长不超过30个字符    |
+|sendCityName     |特殊必填  |string | 发件人所在市,当传入shopCode门店编号时,不必填,根据门店信息发单,最长不超过30个字符    |
+|sendDistrictName     |否  |string | 发件人所在区,当传入shopCode门店编号时,不必填,根据门店信息发单,最长不超过30个字符    |
+|sendAddress     |特殊必填  |string | 发件人详细地址,当传入shopCode门店编号时,不必填,根据门店信息发单,最长不超过150个字符    |
+|sendHouseNumber     |否  |string | 发件人门牌号,当传入shopCode门店编号时,不必填,根据门店信息发单,最长不超过30个字符    |
+|sendLng     |特殊必填  |string | 发件人纬度,火星坐标系,最长不超过40个字符    |
+|sendLat     |特殊必填  |string | 发件人经度,火星坐标系,最长不超过40个字符    |
+|sendCityCode     |特殊必填  |string | 发件人城市code,最长不超过30个字符    |
+|daySeq     |是  |string | 流水号,最长不超过5个字符    |
+
+##### 请求示例 
+
+``` 
+  {
+    "appId": "100001",
+    "timeStamp" : 1647919332000,
+    "sign": "A6015AEA071BED6BBFFAE93018DE8820",
+    "outOrderSn": "2161313407662810813",
+    "categoryId": 2,
+    "weight": 10,
+    "remark": "请快速取货",
+	"receiverName": "李华",
+    "receiverPhone": "16062163351",
+	"receiverProvinceName":"江苏省",
+	"receiverCityName":"苏州市",
+	"receiverDistrictName":"虎丘区",
+    "receiverAddress": "通园路xx产业园",
+	"receiverHouseNumber": "6幢606室",
+	"receiverLng": "31.26682",
+    "receiverLat": "120.67025",
+	"receiverCityCode": "010",
+	"shopCode": "2104161111222174",
+	"daySeq": "2"
+}
+```
+
+##### 返回参数说明 
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|code     |是  |int | 状态码:0-成功 其他为错误    |
+|msg  |是  |string | 错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息) |
+|data     |是  |object | 业务数据    |
+
+##### code为0时返回业务数据如下
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|outOrderSn |是 | string   | 接入方订单编号(唯一标识)  |
+|orderSn |是  |string | 猎豹订单编号    |
+
+
+##### 返回示例 
+
+``` 
+#成功
+{
+	"code": 0,
+	"msg": "SUCCESS",
+	"data": {
+		"outOrderSn": "2161313407662810813",
+		"orderSn": "210927103545271041";
+	}
+}
+
+#失败
+{
+	"code": 1,
+	"msg": "收件人联系电话不可为空",
+	"data": null
+}
+```
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+

+ 61 - 0
docs/views/apiList/orderInterface/orderStatusNotice.md

@@ -0,0 +1,61 @@
+## 订单状态通知
+- **`开放平台失败重推回调通知不保证时序, 需要接入方自己做幂等处理`**
+
+##### 通知地址
+- ` 开放平台统一设置回调通知地址`
+  
+##### 请求方式
+- POST 
+
+##### 通知参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)    |
+|sign     |是  |string | 加签密文    |
+|outOrderSn     |是  |string | 接入方订单编号(唯一标识)    |
+|orderSn     |是  |string | 猎豹订单号    |
+|status     |是  |int |订单状态, 2、已接单,3、配送中,4、已完成,-1、已取消    |
+|deliveryId     |否  |int | 运力id    |
+|deliveryName     |否  |string | 运力名称    |
+|shipperName     |否  |string | 骑手姓名    |
+|shipperPhone     |否  |string | 骑手手机号    |
+|deliveryAmount  |否  |double | 预估运费金额,单位: 元 |
+|discountAmount     |否  |double | 优惠金额,单位: 元    |
+|deductAmount     |否  |double | 违约金,单位: 元   |
+|needPayAmount     |否  |double | 最终需支付金额,单位: 元   |
+
+##### 通知示例 
+
+``` 
+  {
+    "appId": "100001",
+    "timeStamp" : 1647919332000,
+    "sign": "A6015AEA071BED6BBFFAE93018DE8820",
+	"outOrderSn": "2161313407662810813",
+	"orderSn": "210927103545271041",
+	"status": 2,
+	"deliveryId": 1,
+	"deliveryName": "达达",
+	"shipperName": "李xx",
+	"shipperPhone": "18100000000",
+	"deliveryAmount": 10.57,
+	"discountAmount": 1.57,
+	"deductAmount": 0,
+	"needPayAmount": 9.0,
+	"notifyCount":1
+}
+```
+
+##### 通知响应参数 
+字符串:**SUCCESS**,如果未正确返回,系统将根据推送规则进行多次推送,推送规则:  在首次推送后10、30、60、120、300、600、900、1800、3600、7200秒依次推送
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+
+

+ 153 - 0
docs/views/apiList/orderInterface/orderValuation.md

@@ -0,0 +1,153 @@
+## 订单计费
+
+##### 请求URL
+- ` /api/order/valuation `
+  
+##### 请求方式
+- POST 
+
+##### 参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)    |
+|sign     |是  |string | 加签密文    |
+|outOrderSn     |是  |string | 接入方订单编号(唯一标识),最长不超过50个字符    |
+|receiverName     |是  |string | 收件人名称,最长不超过50个字符    |
+|receiverPhone     |是  |string | 收件人联系电话,最长不超过40个字符    |
+|receiverProvinceName     |是  |string | 收件人所在省,最长不超过30个字符    |
+|receiverCityName     |是  |string | 收件人所在市,最长不超过30个字符    |
+|receiverDistrictName     |否  |string | 收件人所在区,最长不超过40个字符    |
+|receiverAddress     |是  |string | 收件人详细地址,最长不超过150个字符    |
+|receiverHouseNumber     |否  |string | 收件人门牌号,最长不超过30个字符    |
+|receiverLng     |是  |string | 收件人经度,火星坐标系,最长不超过40个字符    |
+|receiverLat     |是  |string | 收件人纬度,火星左边系,最长不超过40个字符    |
+|receiverCityCode     |是  |string | 收件人城市编码,最长不超过30个字符    |
+|shopCode     |否  |string | 猎豹AI门店编号(若传此字段, 则根据门店地址进行发单)    |
+|sendName     |特殊必填  |string | 发件人名称,当传入shopCode时,不必填,根据门店信息发单,最长不超过50个字符    |
+|sendPhone     |特殊必填  |string | 发件人联系电话,当传入shopCode时,不必填,根据门店信息发单,最长不超过40个字符    |
+|sendProvinceName     |特殊必填  |string | 发件人所在省,当传入shopCode时,不必填,根据门店信息发单,最长不超过30个字符    |
+|sendCityName     |特殊必填  |string | 发件人所在市,当传入shopCode时,不必填,根据门店信息发单,最长不超过30个字符    |
+|sendDistrictName     |否  |string | 发件人所在区,当传入shopCode时,不必填,根据门店信息发单,最长不超过30个字符    |
+|sendAddress     |特殊必填  |string | 发件人详细地址,当传入shopCode时,不必填,根据门店信息发单,最长不超过150个字符    |
+|sendHouseNumber     |否  |string | 发件人门牌号,当传入shopCode时,不必填,根据门店信息发单,最长不超过30个字符    |
+|sendLng     |特殊必填  |string | 发件人经度,火星坐标系,当传入shopCode时,不必填,根据门店信息发单,最长不超过40个字符    |
+|sendLat     |特殊必填  |string | 发件人纬度,火星坐标系,当传入shopCode时,不必填,根据门店信息发单,最长不超过40个字符    |
+|sendCityCode     |特殊必填  |string | 发件人城市编码,当传入shopCode时,不必填,根据门店信息发单,最长不超过30个字符    |
+|categoryId     |是  |int | 物品类型ID(参考附录-经营品类)    |
+|productAmount     |是  |double | 物品金额,单位为元(范围 1~9999元)    |
+|weight     |是  |int | 物品重量,单位为kg(范围 1~50kg)   |
+|platformType     |是  |int | 0-其他 1-美团 2-饿了么 3-饿百零售 5-美团闪购 6-京东到家    |
+|daySeq     |是  |int | 流水号。指定店铺的每日订单顺序号,比如是今日第2单,那就传2    |
+|remark     |否  |string | 订单备注,最长不超过200个字符    |
+
+##### 请求示例 
+
+``` 
+  {
+    "appId": "100001",
+    "timeStamp" : 1647919332000,
+    "sign": "A6015AEA071BED6BBFFAE93018DE8820",
+	"outOrderSn": "2161313407662810813",
+	"receiverName": "李华",
+    "receiverPhone": "15550958655",
+	"receiverProvinceName":"江苏省",
+	"receiverCityName":"苏州市",
+	"receiverDistrictName":"虎丘区",
+    "receiverAddress": "通园路108号xx产业园",
+	"receiverHouseNumber": "6幢606室",
+	"receiverLng": "120.67025",
+	"receiverLat": "31.26682",
+	"receiverCityCode": "0512",
+	"shopCode": "2104161111222174",
+	"sendName": "王五",
+    "sendPhone": "15562162876",
+	"sendProvinceName":"江苏省",
+	"sendCityName":"苏州市",
+	"sendDistrictName":"虎丘区",
+    "sendAddress": "群星三路109号XX公寓",
+	"sendHouseNumber": "106幢28楼",
+	"sendLng": "120.66593",
+    "sendLat": "31.26703",
+	"sendCityCode": "0512",
+	"categoryId": 2,
+	"productAmount": 99.8,
+    "weight": 2,
+	"platformType": 1,
+	"daySeq": 2,
+	"remark": "请快速取货"
+}
+```
+
+##### 返回参数说明 
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|code     |是  |int | 状态码:0-成功 其他为错误    |
+|msg  |是  |string | 错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息) |
+|data     |是  |object | 业务数据    |
+
+##### code为0时返回下列数据
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|outOrderSn |是 | string   | 接入方订单编号  |
+|valuationList |是  |array | 运力计价结果,10分钟内有效,过期后下单时返回错误码,需重新获取计价    |
+
+##### valuationList参数说明
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|deliveryId |是 | int   | 运力平台ID,详见附录-运力平台  |
+|deliveryName |是  |string | 运力平台名称    |
+|distance     |是  |string | 配送距离,单位: 米    |
+|deliveryAmount  |是  |double | 预估运费金额,单位: 元 |
+|discountAmount     |是  |double | 优惠金额,单位: 元    |
+|needPayAmount     |是  |double | 最终需支付金额,单位: 元   |
+
+
+##### 返回示例 
+
+``` 
+  # 成功
+  {
+	"code": 0,
+	"msg": "SUCCESS",
+    "data": {
+		"outOrderSn": "2161313407662810813",
+		"valuationList": [
+            {
+                "deliveryId": 7,
+                "deliveryName": "UU跑腿",
+                "distance": "77m",
+                "deliveryAmount": 9.6990,
+                "discountAmount": 0,
+                "needPayAmount": 9.6990
+            },
+            {
+                "deliveryId": 1,
+                "deliveryName": "达达",
+                "distance": "49m",
+                "deliveryAmount": 10.7732,
+                "discountAmount": 2,
+				"needPayAmount": 8.7732
+            }
+        ]
+	}
+  }
+  
+  # 失败
+  {
+	"code": 1,
+	"msg": "计价异常...",
+    "data":null
+  }
+```
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+

+ 79 - 0
docs/views/apiList/orderInterface/riderLocation.md

@@ -0,0 +1,79 @@
+## 获取骑手位置
+
+##### 请求URL
+- ` /api/order/rider/location `
+  
+##### 请求方式
+- POST 
+
+##### 参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)    |
+|sign     |是  |string | 加签密文    |
+|outOrderSn     |是  |string | 接入方订单编号(唯一标识),两个订单号不能全为空    |
+|orderSn     |是  |string | 猎豹订单号    |
+
+##### 请求示例 
+
+``` 
+  {
+    "appId": "100001",
+    "timeStamp" : 1647919332000,
+    "sign": "A6015AEA071BED6BBFFAE93018DE8820",
+	"outOrderSn": "2161313407662810813",
+	"orderSn": "2161313407662810813"
+}
+```
+
+##### 返回参数说明 
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|code     |是  |string | 状态码:0-成功 其他为失败    |
+|msg  |是  |string | 错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息) |
+|data     |是  |object | 业务数据    |
+
+
+##### code为0时返回下列业务数据 
+
+|参数名|必选|类型|说明|
+|:-----  |:-----|:----- |----- |
+|shipperLng |是 | string   | 骑手经度  |
+|shipperLat |是  |string |   骑手纬度|
+|shipperName |是  |string |  骑手姓名|
+|shipperPhone |是  |string | 骑手电话|
+
+##### 返回示例 
+
+``` 
+# 成功
+{
+    "code": 0,
+    "msg":"SUCCESS",
+    "data": {
+        "shipperLng": "120.233568",
+		"shipperLat": "31.0009786",
+		"shipperName": "李跑男",
+		"shipperPhone": "16000002211"
+    }
+}
+
+# 失败
+{
+    "code": 1,
+    "msg":"异常信息",
+    "data": null
+}
+```
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+
+

+ 67 - 0
docs/views/apiList/shopInterface/deliveryStatus.md

@@ -0,0 +1,67 @@
+## 门店运力禁用
+
+##### 请求URL
+- `/api/shop/delivery/status `
+  
+##### 请求方式
+- POST 
+
+##### 请求参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳   |
+|sign     |是  |string | 签名    |
+|shopCode     |是  |string |门店编号    |
+|deliveryIdStr     |是  |string |运力id,多个用英文逗号隔开    |
+|status     |是  |int |运力状态 0 禁用 1启用    |
+##### 请求示例 
+
+``` 
+  {
+      "appId": "100001",
+      "timeStamp": 1647931255000,
+      "sign": "2539B9D271B8FA7A720E12C6004BABFC",
+	  "shopCode": "10000012",
+	   "deliveryIdStr": "1,2",
+	   "status": 0
+  }
+```
+
+##### 返回参数说明 
+
+|参数名|类型|说明|
+|:-----  |:-----|-----|
+|code |int   |0 成功  |
+|msg |string   |错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息)|
+|data |object   | 业务数据|
+
+
+##### 返回示例 
+
+``` 
+	# 成功
+	{
+		"code": 0,
+		"msg":"SUCCESS",
+		"data":null
+	}
+	
+	# 失败
+	{
+		"code": 2001,
+		"msg":"门店不存在",
+		"data":null
+	}
+```
+
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+
+

+ 101 - 0
docs/views/apiList/shopInterface/shopCreate.md

@@ -0,0 +1,101 @@
+## 门店创建接口
+
+##### 请求URL
+- `/api/shop/create `
+  
+##### 请求方式
+- POST 
+
+##### 请求参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)   |
+|sign     |是  |string | 签名    |
+|shopName     |是  |string |门店名称    |
+|contactName     |是  |string |联系人姓名    |
+|contactPhone     |是  |string |联系人电话11位手机号码     |
+|provinceName     |是  |string |省(例:江苏省)   |
+|cityName     |是  |string |市(例:南京市)     |
+|districtName     |是  |string |区(例:白下区)   |
+|address     |是  |string |门店地址    |
+|houseNumber     |是  |string |门店门牌号    |
+|longitude     |是  |string |经度 火星坐标系(小数位数不超过10位)   |
+|latitude    |是  |string |纬度 火星坐标系(小数位数不超过10位)    |
+|idcardNo     |否  |string |法人身份证号    |
+|idcardFront     |否  |string |法人身份证正面url   |
+|idcardBack     |否  |string |法人身份证反面url    |
+|bizLicenseNo     |否  |string |营业执照号    |
+|bizLicense     |否  |string |营业执照图片url    |
+|categoryId     |是  |int |门店经营品类(参考附录-经营品类)     品类会影响运力公司订单运费价格   |
+
+##### 请求示例 
+
+``` 
+  {
+      "appId": "100001",
+      "timeStamp": 1647931255000,
+      "sign": "2539B9D271B8FA7A720E12C6004BABFC",
+      "shopName": 2 ,
+      "contactName": "1436864169",
+      "contactPhone": "13000000000",
+      "address": "北京市朝阳区 xx路",
+      "houseNumber": "101号",
+	  "longitude": "120.703864",
+	  "latitude": "31.299412",
+	  "idcardNo": "1000000000000000",
+	   "provinceName":"江苏省",
+      "cityName":"南京",
+      "districtName":"白下",
+      "idcardFront": "https://xx.com/image/364b8355956740a281f676221d1a7a9b.jpg",
+      "idcardBack": "https://xx.com/image/364b8355956740a281f676221d1a7a9b.jpg",
+	  "bizLicenseNo": "92371724MA3DHLddde31",
+	  "bizLicense": "https://xx.com/image/364b8355956740a281f676221d1a7a9b.jpg",
+	  "categoryId": 2
+  }
+```
+
+
+
+
+##### 返回参数说明 
+
+|参数名|类型|说明|
+|:-----  |:-----|-----|
+|code |int   |0 成功  |
+|msg |string   |错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息)|
+|data |object   | 业务参数(code为0时有值)|
+##### 业务参数说明 
+
+|参数名|类型|说明|
+|:-----  |:-----|----- |
+|shopCode |string   |猎豹门店编号 |
+##### 返回示例 
+
+``` 
+	# 成功
+	{
+		"code": 0,
+		"msg":"SUCCESS",
+		"data": {
+			"shopCode": "10000022",
+		}
+	}
+	
+	# 失败
+	{
+		"code": 2002,
+		"msg":"门店名称已存在",
+		"data": null
+	}
+```
+
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+

+ 96 - 0
docs/views/apiList/shopInterface/shopDelivery.md

@@ -0,0 +1,96 @@
+## 门店运力查询
+
+##### 请求URL
+- `/api/shop/delivery `
+  
+##### 请求方式
+- POST 
+
+##### 请求参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳   |
+|sign     |是  |string | 签名    |
+|shopCode     |是  |string |门店编号    |
+
+##### 请求示例 
+
+``` 
+  {
+      "appId": "100001",
+      "timeStamp": 1647931255000,
+      "sign": "2539B9D271B8FA7A720E12C6004BABFC",
+	  "shopCode": "10000012"
+  }
+```
+
+
+
+
+##### 返回参数说明 
+|参数名|类型|说明|
+|:-----  |:-----|-----|
+|code |int   |0 成功  |
+|msg |string   |错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息)|
+|data |object   | 业务参数(code为0时有值)|
+##### code为0时返回如下业务参数 
+|参数名|类型|说明|
+|:-----  |:-----|-----                           |
+|shopCode |string   |猎豹门店编号 |
+|list |array   |运力集合 |
+
+##### 运力集合参数说明 
+|参数名|类型|说明|
+|:-----  |:-----|-----                           |
+|deliveryId |int   |运力id |
+|deliveryName |string   |运力名称 |
+|bindStatus |int   |门店运力开通情况 0:未绑定,1 绑定 2-> 审核中,3->拒绝  |
+|failMsg |string   |门店运力开通失败原因 |
+|status |int   |门店运力状态 0 禁用 1启用|
+##### 返回示例 
+
+``` 
+# 成功
+  {
+    "code": 0,
+    "msg":"SUCCESS",
+    "data": {
+		"shopCode": "10000022",
+	   "list": [
+		{
+		  "deliveryId": 3,
+		  "deliveryName": "美团",
+		  "bindStatus": "1",
+		  "failMsg": "",
+		  "status": "1",
+		 },
+		 {
+		  "deliveryId": 5,
+		  "deliveryName": "顺丰同城",
+		  "bindStatus": 3,
+		  "failMsg": "门店经纬度异常",
+		  "status": 0,
+		 }
+	 ]
+    }
+  }
+  
+  # 失败
+  {
+    "code": 2001,
+    "msg":"门店不存在",
+    "data": null
+  }
+```
+
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+
+

+ 108 - 0
docs/views/apiList/shopInterface/shopUpdate.md

@@ -0,0 +1,108 @@
+## 门店更新接口
+
+##### 请求URL
+- `/api/shop/update `
+  
+##### 请求方式
+- POST 
+
+##### 请求参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)   |
+|sign     |是  |string | 签名    |
+|shopCode     |是  |string |门店编号    |
+|shopName     |是  |string |门店名称(不可重复)    |
+|contactName     |是  |string |联系人姓名    |
+|contactPhone     |是  |string |联系人电话11位手机号码     |
+|provinceName     |是  |string |省(例:江苏省)   |
+|cityName     |是  |string |市(例:南京市)     |
+|districtName     |是  |string |区(例:白下区)   |
+|address     |是  |string |门店地址    |
+|houseNumber     |是  |string |门店门牌号    |
+|longitude     |是  |string |经度 火星坐标(小数位数不超过10位)   |
+|latitude    |是  |string |纬度 火星坐标(小数位数不超过10位)    |
+|idcardNo     |否  |string |法人身份证号    |
+|idcardFront     |否  |string |法人身份证正面url   |
+|idcardBack     |否  |string |法人身份证反面url    |
+|bizLicenseNo     |否  |string |营业执照号    |
+|bizLicense     |否  |string |营业执照图片url    |
+|categoryId     |是  |int |门店经营品类(参考附录-经营品类)     品类会影响运力公司订单运费价格   |
+
+##### 请求示例 
+
+``` 
+  {
+      "appId": "100001",
+      "timeStamp": 1647931255000,
+      "sign": "2539B9D271B8FA7A720E12C6004BABFC",
+	   "shopCode": 10000012,
+      "shopName": "丹香蛋糕",
+      "contactName": "1436864169",
+      "contactPhone": "13000000000",
+	   "provinceName":"江苏省",
+      "cityName":"南京",
+      "districtName":"白下",
+      "address": "北京市朝阳区 xx路",
+      "houseNumber": "101号",
+	  "longitude": "120.703864",
+	  "latitude": "31.299412",
+	  "idcardNo": "1000000000000000",
+      "idcardFront": "https://xx.com/image/364b8355956740a281f676221d1a7a9b.jpg",
+      "idcardBack": "https://xx.com/image/364b8355956740a281f676221d1a7a9b.jpg",
+	  "bizLicenseNo": "92371724MA3DHLddde31",
+	  "bizLicense": "https://xx.com/image/364b8355956740a281f676221d1a7a9b.jpg",
+	  "categoryId": 2,
+	  "provinceName":"江苏省",
+      "cityName":"南京",
+      "districtName":"白下"
+  }
+```
+
+
+
+
+##### 返回参数说明 
+
+|参数名|类型|说明|
+|:-----  |:-----|-----|
+|code |int   |0 成功  |
+|msg |string   |错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息)|
+|data |object   | 业务参数(code为0时有值)|
+##### 业务参数说明 
+
+|参数名|类型|说明|
+|:-----  |:-----|----- |
+|shopCode |string   |猎豹门店编号 |
+
+##### 返回示例 
+
+``` 
+# 成功
+ {
+    "code": 0,
+	"msg":"SUCCESS",
+    "data": {
+		"shopCode": "10000022",
+    }
+  }
+  
+  # 失败
+ {
+    "code": 2002,
+	"msg":"门店名称已存在",
+    "data": null
+  }
+```
+
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+
+

+ 46 - 0
docs/views/apiList/shopInterface/statusSync.md

@@ -0,0 +1,46 @@
+## 门店运力状态同步
+- **`开放平台失败重推回调通知不保证时序, 需要接入方自己做幂等处理`**
+
+##### 通知地址
+- ` 开放平台统一设置回调通知地址`
+  
+##### 请求方式
+- POST 
+
+##### 通知参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳(毫秒级)    |
+|sign     |是  |string | 加签密文    |
+|shopCode     |是  |string | 猎豹门店编号    |
+|deliveryId     |是  |int | 运力id    |
+|status     |是  |int | 运力状态:2:审核中,1:已通过,3:未通过    |
+|failMsg     |否  |string | 审核失败原因,status为2时会返回该字段值    |
+
+##### 通知示例 
+
+``` 
+  {
+    "appId": "100001",
+    "timeStamp" : 1647919332000,
+    "sign": "A6015AEA071BED6BBFFAE93018DE8820",
+	"shopCode": "2104161111222174",
+	"deliveryId": 1,
+	"notifyCount":1,
+	"status": 1,
+	"failMsg": ""
+}
+```
+
+##### 通知响应参数 
+字符串:**SUCCESS**,如果未正确返回,系统将根据推送规则进行多次推送,推送规则:  在首次推送后10、30、60、120、300、600、900、1800、3600、7200秒依次推送
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+

+ 75 - 0
docs/views/apiList/tokenRefresh.md

@@ -0,0 +1,75 @@
+## token刷新
+
+##### 请求URL
+- `/app/refreshToken`
+  
+##### 请求方式
+- POST 
+
+##### 请求参数
+
+|参数名|必选|类型|说明|
+|:----    |:---|:----- |-----   |
+|appId |是  |string |系统分配的appId   |
+|timeStamp |是  |long | 时间戳   |
+|sign     |是  |string | 签名    |
+|refreshToken     |是  |string |refreshToken    |
+
+##### 请求示例 
+
+``` 
+  {
+      "appId": "100001",
+      "timeStamp": 1647931255000,
+      "sign": "2539B9D271B8FA7A720E12C6004BABFC",
+	  "refreshToken": 0cd60efb5578cd967c3c23894f305800
+  }
+```
+
+
+
+
+##### 返回参数说明 
+|参数名|类型|说明|
+|:-----  |:-----|-----|
+|code |string   |0 成功  |
+|msg |string   |错误信息(code=0时,值为SUCCESS,  code不等于0为具体错误信息)|
+|data |object   | 业务数据|
+##### 业务参数说明 
+|参数名|类型|说明|
+|:-----  |:-----|-----                           |
+|refreshToken |string   |refreshToken |
+|token |string   |token |
+|expiresIn |long   |token有效期(秒) |
+
+##### 返回示例 
+
+``` 
+	# 成功
+	{
+		"error_code": 0,
+		"msg":"SUCCESS",
+		"data": {
+			"refreshToken": "0cd60efb5578cd967c3c23894f305800",
+			"token": "0cd60efb5578cd967c3c23894f305801",
+			"expiresIn": 2592000
+		}
+	}
+	
+	# 失败
+	{
+		"error_code": 0,
+		"msg":"refreshToken失效",
+		"data": null
+	}
+```
+
+
+##### 备注 
+
+- 更多返回错误代码请看首页的错误代码描述
+
+
+
+
+

+ 16 - 0
docs/views/appendix/businessCategory.md

@@ -0,0 +1,16 @@
+## 经营品类
+
+|品类ID|品类名称|
+|:----    |:-------    |
+|1    |文件证件     |
+|2 |快餐水果 |
+|3 |日用百货 |
+|4     |蛋糕甜品 |
+|5 |海鲜/烧烤     |
+|6 |鲜花绿植     |
+|7 |手机数码    |
+|8 |服装鞋帽   |
+|9 |汽修配件     |
+|10 |同城电商    |
+|11 |其他     |
+|12 |医药健康     |

+ 14 - 0
docs/views/appendix/deliveryPlatform.md

@@ -0,0 +1,14 @@
+## 运力平台
+|运力ID|运力名称|
+|:----    |:-------    |
+|1    |达达     |
+|2 |蜂鸟品质达 |
+|3 |美团全城送、美团飞速达 |
+|4     |闪送 |
+|5 |顺丰同城     |
+|7 |UU跑腿     |
+|8 |爱跑腿     |
+|9 |达达优质     |
+|10 |快服务     |
+|13 |美团跑腿     |
+|15 |蜂鸟跑腿     |

+ 35 - 0
docs/views/appendix/errorCode.md

@@ -0,0 +1,35 @@
+## 错误编码
+|错误code|错误描述|
+|:----    |:-------    |
+|1001    |timestamp错误     |
+|1002 |appId无效 |
+|1003 |签名验证失败 |
+|1004     |参数为空 |
+|1005 |参数无效     |
+|1006 |无效的验证码    |
+|1007 |验证码不一致   |
+|2001 |门店不存在     |
+|2002 |门店名称已存在     |
+|2003 |门店分类不存在     |
+|2004 |运力id不能为空    |
+|2005 |该商家已禁用   |
+|2006 |请等待商家通过认证 |
+|2007 |物品分类不存在   |
+|2008 |无可用发单运力    |
+|2009 |订单不存在 |
+|2010 |订单状态异常     |
+|2011 |有不在指定运力范围内的运力id  |
+|2012 |门店经纬度跟门店地址不匹配   |
+|2013 |法人身份证号码校验失败    |
+|2014 |营业执照校验失败    |
+|2015 |营业执照法人跟身份证信息不匹配  |
+|2016 |手机号码已注册 |
+|2021 |计价失败   |
+|2022 |token已失效 |
+|2023 |地址解析失败 |
+|2030 |计价已失效, 请重新计价  |
+|2031 |账户余额不足    |
+|2032 |下单失败   |
+|2033 |无效的运力ID   |
+|2050 |订单已经被取消   |
+|2051 |订单取消类型不存在   |

+ 17 - 0
docs/views/documentDescription/index.md

@@ -0,0 +1,17 @@
+**阅读对象:**
+  本文阅读对象:需接入配送系统的技术架构师、研发工程师、测试工程师等。
+
+**接入说明:**
+  1.填写资料申请 appid 、appsecret 和token
+  2.接口对接(测试环境和生产环境回调地址需单独设置)
+  3.应用申请上线获取生产环境的appid 、appsecret 和token
+  
+**调用流程:**
+  填充参数 > 生成签名 > 拼装HTTP请求 > 发起HTTP请求> 得到HTTP响应 > 解释json结果
+  
+##### 请求规则:
+  |规则|描述|
+|:----    |:---|
+|请求方式 |POST |
+|参数格式 |application/json  |
+|字符编码     |统一采用UTF-8字符编码|

+ 60 - 0
docs/views/interfaceRules/sign.md

@@ -0,0 +1,60 @@
+## 签名
+##### **目的**
+为了防止API调用过程中数据被恶意篡改,调用任何一个API都需要按照规则进行签名,开放平台服务端会根据同一规则对签名进行验证,签名不合法的请求将会被拒绝。
+
+##### **规则**
+1. 将参数(sign除外)按照参数名的字典顺序排序
+2. 将参数使用键值对的格式(即key1=value1&key2=value2...)拼接成字符串A
+3. 在字符串A最后拼接上appSecret得到最终的待签名字符串B
+4. 对待签名字符串B进行MD5运算,得到字符串C
+5. 最后将字符串C转换为大写, 即得到签名值, signValue
+
+##### **示例**
+appSecret=test001
+系统参数:
+appId=100010
+timeStamp=1651215937000
+业务参数:
+shopName=好又多超市
+empty=
+
+参数拼接成字符串A:
+appId=100010&shopName=好又多超市&timeStamp=1651215937000
+
+字符串A的末尾拼接appSecret, 组装成字符串B:
+appId=100010&shopName=好又多超市&timeStamp=1651215937000&appSecret=test001
+
+字符串B进行MD5运算得到字符串C:
+MD5(appId=100010&shopName=好又多超市&timeStamp=1651215937000&appSecret=test001)
+
+字符串C转成全大写, 得到签名signValue:
+MD5(appId=100010&shopName=好又多超市&timeStamp=1651215937000&appSecret=test001).toUpperCase()
+
+**签名算法如下(Java代码示例)**
+```java
+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);
+            // 排除值为null的情况
+            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();
+}
+```
+
+
+
+
+
+

+ 15 - 0
node_modules/.bin/atob

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../atob/bin/atob.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../atob/bin/atob.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/atob.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\atob\bin\atob.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/atob.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../atob/bin/atob.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../atob/bin/atob.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/esbuild

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../esbuild/bin/esbuild" "$@"
+  ret=$?
+else 
+  node  "$basedir/../esbuild/bin/esbuild" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/esbuild.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\esbuild\bin\esbuild" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/esbuild.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../esbuild/bin/esbuild" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../esbuild/bin/esbuild" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/nanoid

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../nanoid/bin/nanoid.cjs" "$@"
+  ret=$?
+else 
+  node  "$basedir/../nanoid/bin/nanoid.cjs" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/nanoid.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\nanoid\bin\nanoid.cjs" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/nanoid.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../nanoid/bin/nanoid.cjs" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../nanoid/bin/nanoid.cjs" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/parser

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/parser.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\@babel\parser\bin\babel-parser.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/parser.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../@babel/parser/bin/babel-parser.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../@babel/parser/bin/babel-parser.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/resolve

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../resolve/bin/resolve" "$@"
+  ret=$?
+else 
+  node  "$basedir/../resolve/bin/resolve" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/resolve.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\resolve\bin\resolve" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/resolve.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../resolve/bin/resolve" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../resolve/bin/resolve" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/rollup

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../rollup/dist/bin/rollup" "$@"
+  ret=$?
+else 
+  node  "$basedir/../rollup/dist/bin/rollup" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/rollup.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\rollup\dist\bin\rollup" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/rollup.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../rollup/dist/bin/rollup" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../rollup/dist/bin/rollup" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/stylus

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../stylus/bin/stylus" "$@"
+  ret=$?
+else 
+  node  "$basedir/../stylus/bin/stylus" "$@"
+  ret=$?
+fi
+exit $ret

+ 0 - 0
node_modules/.bin/stylus.cmd


Неке датотеке нису приказане због велике количине промена