九医云商城对外文档

九医云商城对外文档


1-3 九医云商城对外通用接口

<h1>九医云商城Sass对外通用接口</h1> <table> <thead> <tr> <th>版本号</th> <th>变更日期  </th> <th>变更描述                                                    </th> <th>变更人</th> </tr> </thead> <tbody> <tr> <td>V1.0  </td> <td>2023/09/18</td> <td>创建                                                        </td> <td>李呈云</td> </tr> </tbody> </table> <p>[TOC]</p> <h2>一、概述</h2> <p>&gt; 本文档主要是九医云平台通用接口规范。包括:通用接口中参数及返回值说明等内容。</p> <h2>二、接口规范</h2> <h3>2.1安全验证</h3> <p>&gt; - 本套接口遵循Bearer Token (<a href="http://www.rfcreader.com/#rfc6750">RFC 6750</a>) 用于OAuth 2.0授权访问资源 &gt; - 业务接口中以sign系统级参数进行请求校验,除Token请求接口外均需携带签名进行交互 &gt; - 业务接口中以timestamp(时间戳10位)系统级参数有效时间为100秒 &gt; - 业务接口中以nonce系统级参数校验重放攻击,唯一随机数,可以是uuid,每次请求都随机生成</p> <h3>2.2协议格式</h3> <h4>2.2.1  通信协议</h4> <p>&gt; - 请求参数与返回参数都以JSON 格式作为数据格式 &gt; - 字符集默认使用 UTF-8,请勿使用其它字符集 &gt; - 所有业务接口默认为post</p> <h4>2.2.2  数据约束</h4> <p>&gt; - 与日期,时间有关的信息以yyyy-MM-dd HH:mm:ss格式传输 &gt; - 与金额有关的信息以元为单位,保留两位小数(可按具体需求) &gt; - 业务接口非必填参数可不传,若传,则参数值不能为空</p> <h3>2.3  系统级参数约束</h3> <h4>2.3.1  请求说明</h4> <p>&gt; - 请求参数采用 JSON 格式 &gt; - 包含sign,appKey,timestamp,nonce,input字段</p> <table> <thead> <tr> <th>参数名称  </th> <th>参数类型</th> <th>必填</th> <th>说明                                    </th> </tr> </thead> <tbody> <tr> <td>appKey    </td> <td>string  </td> <td>Y    </td> <td>商户Key(九医云提供)                        </td> </tr> <tr> <td>timestamp</td> <td>long    </td> <td>Y    </td> <td>取当前时间戳(10位)                      </td> </tr> <tr> <td>nonce    </td> <td>string  </td> <td>Y    </td> <td>唯一随机数,可以是uuid,每次请求都随机生成</td> </tr> <tr> <td>sign      </td> <td>string  </td> <td>N    </td> <td>签名值                                  </td> </tr> <tr> <td>input    </td> <td>object  </td> <td>N    </td> <td>业务模型                                </td> </tr> </tbody> </table> <h4>2.3.2  返回说明</h4> <p>&gt; - 返回结果采用 JSON 格式 &gt; - 包含code、msg、output字段</p> <table> <thead> <tr> <th>参数名称</th> <th>参数类型</th> <th>必填</th> <th>说明                    </th> </tr> </thead> <tbody> <tr> <td>code    </td> <td>Integer  </td> <td>Y    </td> <td>200 标识成功,非200 失败</td> </tr> <tr> <td>msg      </td> <td>string  </td> <td>Y    </td> <td>返回信息                </td> </tr> <tr> <td>nonce    </td> <td>string  </td> <td>Y    </td> <td>请求时携带的随机数      </td> </tr> <tr> <td>output  </td> <td>object  </td> <td>N    </td> <td>返回数据,json 格式      </td> </tr> </tbody> </table> <h3>2.4  签名方法</h3> <p>客户端和服务端之间约定一个相同的秘钥secret(九医云提供),作为加密字符串的一部分</p> <p>生成规则由字符串secret + timestamp + nonce拼接后进行MD5加密得出小写字符串后进行SHA1加密后得出小写字符串作为数据签名</p> <p>demo:</p> <pre><code>secret=Hwdiicysdgrffc012342de_dsr$221 timestamp=1637725871 nonce=BE6DD046-CAFB-B26F-7C9006BE48EA48D4 tempStr = Hwdiicysdgrffc012342de_dsr$2211637725871BE6DD046-CAFB-B26F-7C9006BE48EA48D4 md5Str = MD5(tempStr);  得出 1d121b5435f3281112c5a0c8ff66b77c sign = SHA1(md5Str);        得出 39d8b31606bc3cf349540c9f52d586ea60aeb924</code></pre> <h2>三、校验获取Token接口详细说明</h2> <p>&gt; - 测试接口地址:<a href="https://test.91medicine.net/gateway/auth-server/">https://test.91medicine.net/gateway/auth-server/</a> &gt; - 生产接口地址:<a href="https://cloud.91medicine.cn/gateway/auth-server/">https://cloud.91medicine.cn/gateway/auth-server/</a></p> <h3>3.1 OAuth Bearer Token获取接口</h3> <p>&gt; - Url路径:oauth/token</p> <h4>3.1.1 接口请求模型</h4> <table> <thead> <tr> <th>参数名称  </th> <th>参数类型</th> <th>必填</th> <th>说明                </th> </tr> </thead> <tbody> <tr> <td>grant_type</td> <td>string  </td> <td>Y    </td> <td>传入固定值:password  </td> </tr> <tr> <td>username  </td> <td>string  </td> <td>Y    </td> <td>用户名(九医云技术提供)</td> </tr> <tr> <td>password  </td> <td>string  </td> <td>Y    </td> <td>密码(九医云技术提供)  </td> </tr> </tbody> </table> <h4>3.1.2 接口返回模型</h4> <table> <thead> <tr> <th>参数名称    </th> <th>参数类型</th> <th>必填</th> <th>说明                      </th> </tr> </thead> <tbody> <tr> <td>access_token</td> <td>string  </td> <td>Y    </td> <td>返回的token                </td> </tr> <tr> <td>expires_in  </td> <td>int      </td> <td>Y    </td> <td>剩余有效期(秒) 一般是86399</td> </tr> <tr> <td>token_type  </td> <td>string  </td> <td>Y    </td> <td>请求业务接口头部类型bearer</td> </tr> </tbody> </table> <p>Demo:</p> <pre><code>Method:GET Request: grant_type=pwd&amp;amp;username=jiuwei&amp;amp;password=yf2023&amp;amp;platform=shop&amp;amp;Auto-Key=e33cc4e2-91a2-43d0-abeb-cbfcc42eb1e4&amp;amp;client_id=dt&amp;amp;client_secret=dt&amp;amp;scope=all&amp;amp;need=false&amp;amp;headStoreUuid= Response: {     &amp;quot;code&amp;quot;: 0,     &amp;quot;msg&amp;quot;: &amp;quot;&amp;quot;,     &amp;quot;data&amp;quot;: {         &amp;quot;access_token&amp;quot;: &amp;quot;baa2dc2b-2bf7-4202-bb13-f7ef3f16fcc9&amp;quot;,         &amp;quot;token_type&amp;quot;: &amp;quot;bearer&amp;quot;,         &amp;quot;refresh_token&amp;quot;: &amp;quot;dbf99cbe-3699-42ab-b423-32ac28e07e23&amp;quot;,         &amp;quot;expires_in&amp;quot;: 601631,         &amp;quot;scope&amp;quot;: &amp;quot;all&amp;quot;     } }</code></pre>

页面列表

ITEM_HTML