文档内容(Content)
MSSDK English
MSSDK 中文
MSSDK 版本发布
API 文档
集成向导
服务端文档
MSSDK 服务端接入指南
微服务API
渠道管理API
问卷星服务端接入
H5网页授权接入指南
外部网关API签名规则
应用管理API
内部网关API签名规则
签名示例
新手指导文档
联系我们

MSSDK

SDK 文档


问卷星服务端接入

<p>[TOC]</p> <h2>接口描述</h2> <p>此接口用于回调给开发者服务器,如果奖励不允许用户重复领取,需做好 <code>playerId+serverId+roleId</code> 的唯一限制,防止调用方超时后重试导致重复发送。一个游戏下的所有奖励,必须使用相同的发放 URL。</p> <p><strong>注意:此接口必须开发者服务端接入。</strong></p> <p>开发者按接口规范实现此接口,我们会通过回调URL调用该接口通知给开发者服务端。</p> <h2>流程图</h2> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/22e1512be930e758590a8162f100cedf?showdoc=.jpg" alt="" /> 开发者需要关注流程图中第1和第8步(<strong>已标红</strong>)。</p> <p>透传参数参考【接口规范】的前7个字段。必传字段不为null且不为空。</p> <p>我们会透传这7个字段并且添加签名,签名规则参考 <a href="#jump_wjx_sign">签名算法</a>,开发者需验签后再发放奖励。</p> <h2>接口规范</h2> <ul> <li> <p>请求的URL:需要在业务控制台配置,可以<a href="https://www.showdoc.cc/mssdk?page_id=2615409307929897">联系我们</a></p> </li> <li> <p>调用方式:<code>POST</code></p> </li> <li> <p>HTTP 请求头Content-Type:<code>application/json</code></p> </li> <li> <p>字符集:<code>UTF-8</code></p> </li> <li>请求参数,如下表:</li> </ul> <table> <thead> <tr> <th>字段名称</th> <th>类型</th> <th>是否必填</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>playerId</td> <td>String</td> <td>是</td> <td>玩家Id (CP透传,开发者可以传入自己的用户id)</td> </tr> <tr> <td>extra</td> <td>String</td> <td>否</td> <td>扩展字段(CP透传,在有多个链接的情况下用于标识链接,10字符以内))</td> </tr> <tr> <td>serverId</td> <td>String</td> <td>是</td> <td>区服Id (CP透传)</td> </tr> <tr> <td>roleId</td> <td>String</td> <td>是</td> <td>角色Id (CP透传)</td> </tr> <tr> <td>level</td> <td>String</td> <td>是</td> <td>用户等级 (CP透传)</td> </tr> <tr> <td>accruingAmounts</td> <td>String</td> <td>是</td> <td>用户累计消费金额 (CP透传)</td> </tr> <tr> <td>consecutiveDays</td> <td>String</td> <td>是</td> <td>用户连续登录天数 (CP透传)</td> </tr> <tr> <td>sign</td> <td>String</td> <td>是</td> <td>签名;需要校验签名一致,算法见下面说明(参与签名的字段为playerId/roleId/serverId)</td> </tr> <tr> <td>gameId</td> <td>String</td> <td>是</td> <td>游戏id(客户端请求头携带)</td> </tr> <tr> <td>channel</td> <td>String</td> <td>是</td> <td>渠道(客户端请求头携带)</td> </tr> <tr> <td>appVersion</td> <td>String</td> <td>是</td> <td>appVersion(客户端请求头携带)</td> </tr> </tbody> </table> <ul> <li>返回信息,如下:</li> </ul> <table> <thead> <tr> <th>字段名称</th> <th>类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>code</td> <td>Int</td> <td>返回码</td> </tr> <tr> <td>msg</td> <td>String</td> <td>结果描述</td> </tr> </tbody> </table> <pre><code class="language-json">{ "code":20000, "msg":"OK" }</code></pre> <h2>注意事项</h2> <p>因问卷星对参数长度有限制(<strong>100字符</strong>),参数字符串长度应尽可能地小,否则无法获取问卷链接。 字符串拼接规则是:appId|playerId|channel|extra|serverId|roleId|level|accruingAmounts|consecutiveDays|appVersion 再进行Urlencode后所得字符串<strong>不能超过100个字符(编码后)</strong>。接入者需自行验证字符串是否满足此要求。</p> <h2>错误码</h2> <table> <thead> <tr> <th>码值</th> <th>含义</th> </tr> </thead> <tbody> <tr> <td>20000</td> <td>成功</td> </tr> <tr> <td>20002</td> <td>该用户已经领取过奖励</td> </tr> <tr> <td>20003</td> <td>请求参数错误</td> </tr> <tr> <td>20004</td> <td>签名错误</td> </tr> </tbody> </table> <h2>签名算法</h2> <p><span id="jump_wjx_sign"></span></p> <p>首先对部分请求参数(参与签名的字段为 playerId/roleId/serverId)按参数名做字典序升序排列。(所谓字典序升序排列,直观上就如同在字典中排列单词一样排序,按照字母表或数字表里递增顺序的排列次序,即先考虑第一个“字母”,在相同的情况下考虑第二个“字母”,依此类推。)</p> <p><strong>1、参数排序后拼接字符串</strong></p> <p>将把上一步排序好的请求参数格式化成“参数名称”=“参数值”的形式</p> <pre><code>Key1=value1&amp;Key2=value2&amp;Key3=value3&amp;…………</code></pre> <p><strong>2、拼接最终签名字符串</strong></p> <p>将秘钥appSecrect拼接在字符串前后,如下示例:</p> <pre><code>appSecrect&amp; Key1=value1&amp; Key2=value2&amp; Key3=value3&amp;………&amp;appSecrect</code></pre> <p><strong>3、md5生成签名串, 并进行UrlEncode UTF-8 编码</strong></p> <pre><code>UrlEncode(md5(appSecrect&amp;Key1=value1&amp;Key2=value2&amp;Key3=value3&amp;………&amp;appSecrect))</code></pre>

页面列表

ITEM_HTML