腾讯珊瑚接入流程和开发指引

接入流程+开发工作量+开发接口


免登接口

<h4>免登接口(h5商城链接)</h4> <p><strong>1.目标是生成出形如这样的免登陆URL:</strong> <a href="https://gmall.m.qq.com/homepage?appid=7800111&amp;sign=dc8f8c09ef6c907e067e3f9c4e4ab695&amp;_timestamp=1582864983000&amp;account_id=testaccountid333&amp;device_id=testdeviceid86&amp;login_key=testkey123">https://gmall.m.qq.com/homepage?appid=7800111&amp;sign=dc8f8c09ef6c907e067e3f9c4e4ab695&amp;_timestamp=1582864983000&amp;account_id=testaccountid333&amp;device_id=testdeviceid86&amp;login_key=testkey123</a></p> <p><strong>请求URL:</strong> </p> <ul> <li><code>https://gmall.m.qq.com/homepage</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>GET </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">appid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">int</td> <td>珊瑚产品id, 由珊瑚侧提供</td> </tr> <tr> <td style="text-align: left;">_timestamp</td> <td style="text-align: left;">是</td> <td style="text-align: left;">long</td> <td>时间戳,毫秒 ,用于参与签名计算</td> </tr> <tr> <td style="text-align: left;">sign</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>MD5签名32位小写</td> </tr> <tr> <td style="text-align: left;">account_id</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>用户账号id,接入方生成 ,不能包含会被encode的字符(比如“=”、“+”),建议由数字、字母或者“-”组成。</td> </tr> <tr> <td style="text-align: left;">login_key</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>用户登录票据,接入方生成,用于接入方校验用户的登录合法性,不能包含会被encode的字符(比如“=”、“+”),建议由数字、字母或者“-”组成。该票据会和account_id一起通过登录态回调接口透传到接入方进行校验。长度没有限制。</td> </tr> <tr> <td style="text-align: left;">device_id</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>设备id(imei),确实没有imei可以用其他值替代</td> </tr> </tbody> </table> <p><strong>2.参数拆解来看。 (更具体请看签名规则)</strong></p> <ul> <li>Appid是我方提供的</li> <li>_timestamp是用来加密的当前时间戳</li> <li>accountid和device_id和loginKey由客户端传上来</li> <li>Sign的组合方法是 md5(<code>${reqStr}${key}${timestamp}</code>), 比如现在参数只有accountid:1234和deviceID:5678, 特殊字符需要encode, timestmap=1563355405300,secret是2223。那sign = md5(‘account_id=1234;device_id=5678;22231563355405300’)</li> <li>login_key是透传过来的,无须参与md5签名</li> </ul> <p><strong>3.签名方式</strong> 参与签名的字段包括地址请求参数中除<code>appid</code>、<code>login_key</code>和<code>sign</code>的所有请求参数,以及<code>appsecret</code>(appid对应分配的appsecret)。</p> <p>步骤1.按照以下方式构造验签名串。签名串由三部分组成,每部分直接拼接,不需要分隔符,或者认为分隔符为空字符串''.</p> <p>第一部分为请求参数中除<code>appid</code>、<code>login_key</code>、<code>sign</code>以及<code>_timestamp</code>参数的其他参数,对这些参数按照请求时的顺序进行排序后,每个参数使用键值对的格式(key1=value1)以英文分号<code>;</code>作为分隔符拼接成第一部分的内容。示例:如果请求参数为<code>appid=1&amp;amp;_timestamp=1682323886173&amp;amp;account_id=id1&amp;amp;login_key=login-key1&amp;amp;device_id=device-id1</code>,则第一部分的内容为<code>account_id=id1;device_id=device-id1</code></p> <p>第二部分为<code>appsecret</code>的值,<code>appsecret</code>的值直接作为第二部分的内容。示例: 如果<code>appsecret</code>为<code>secretabc</code>,则第二部分的内容为<code>secretabc</code></p> <p>第三部分为<code>_timestamp</code>参数的值,<code>_timestamp</code>的值直接作为第三部分的内容。示例: 如果<code>_timestamp</code>为<code>1682324085404</code>,则第三部分的内容为<code>1682324085404</code></p> <p>将第一部分、第二部分和第三部分的内容拼接后构成验签名串,结合先前示例,结合后验签名串的示例为<code>account_id=id1;device_id=device-id1;secretabc1682324085404</code></p> <p>步骤2. 对构造好的验签名串字进行md5签名,得到sign: <code>a82d566f7b6682e7ebe859a91a301e23</code></p> <p>步骤3. 将sign添加到请求参数中,则请求地址为:<code>https://gmall.m.qq.com/homepage?appid=1&amp;amp;_timestamp=1682323886173&amp;amp;account_id=id1&amp;amp;login_key=login-key1&amp;amp;device_id=device-id1&amp;amp;sign=a82d566f7b6682e7ebe859a91a301e23</code></p> <p><strong>5.注意事项</strong></p> <ul> <li>不刷新页面15min之后过期则为无效访问,需刷新</li> <li> <p>测试环境域名是https://testgmall.m.qq.com 正式环境域名是https://gmall.m.qq.com</p> </li> <li>如果需要游客访问,<strong>请不传account_id和loginkey,</strong>且加多一个参数not_login=true。具体链接如下所示: <a href="https://testgmall.m.qq.com/homepage?appid=7990&amp;sign=e6700ecb748863c2af5ff2b68a9493d8&amp;device_id=866615038238596&amp;_timestamp=1563419542698&amp;not_login=true">https://testgmall.m.qq.com/homepage?appid=7990&amp;sign=e6700ecb748863c2af5ff2b68a9493d8&amp;device_id=866615038238596&amp;_timestamp=1563419542698&amp;not_login=true</a></li> </ul>

页面列表

ITEM_HTML