会员设置
<h5>简要描述</h5>
<ul>
<li>会员设置</li>
</ul>
<h5>请求URL</h5>
<p><code>/api/v1/membership/user/setting</code></p>
<h5>请求方式</h5>
<ul>
<li>POST</li>
</ul>
<h5>参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>例值</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">mobile</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>-</td>
<td>用户手机号码</td>
</tr>
<tr>
<td style="text-align: left;">vipType</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">number</td>
<td>-</td>
<td>套餐类型</td>
</tr>
<tr>
<td style="text-align: left;">startAt</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">number</td>
<td>-</td>
<td>开始时间,格式YYYY-mm-dd</td>
</tr>
<tr>
<td style="text-align: left;">endAt</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">number</td>
<td>-</td>
<td>结束时间,格式YYYY-mm-dd</td>
</tr>
<tr>
<td style="text-align: left;">signature</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>-</td>
<td>参数签名</td>
</tr>
</tbody>
</table>
<h5>signature签名方式</h5>
<pre><code>const secret_key = 'secret_key'
const params = req.body
const message = Object.keys(params).sort().map(key =&gt; {
if (typeof params[key] === 'object') {
return `${key}=${JSON.stringify(params[key])}`
}
return `${key}=${params[key]}`
}).join('&amp;')
const hmac = crypto.createHmac('sha256', secret_key);
hmac.update(message);
const signature = encodeURIComponent(hmac.digest('base64'))</code></pre>
<h5>返回示例</h5>
<pre><code>{
&quot;status&quot;: 200,
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;data&quot;: {}
}</code></pre>
<h5>错误返回示例</h5>
<pre><code>{
&quot;status&quot;: 400,
&quot;msg&quot;: &quot;参数校验失败&quot;,
&quot;data&quot;: {}
}</code></pre>