红包活动提现功能
<p>[TOC]</p>
<h3>1、【红包活动提现发起】接口功能说明</h3>
<pre><code> 用于微信小游戏发起红包小额提现</code></pre>
<h5>请求URL</h5>
<ul>
<li>(联运SDK,魔么咒等) <a href="https://graph.llewan.com/v1/RedPacketWd/apply">https://graph.llewan.com/v1/RedPacketWd/apply</a></li>
<li>(独代SDK,部落、植物) <a href="https://graph.llewan.com/v1/RedPacketWd/ddApply">https://graph.llewan.com/v1/RedPacketWd/ddApply</a></li>
</ul>
<h5>请求方式</h5>
<ul>
<li>POST </li>
<li>Content-Type:application/x-www-form-urlencoded</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>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">game </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>乐玩游戏标识</td>
</tr>
<tr>
<td style="text-align: left;">uid </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>乐玩用户UID</td>
</tr>
<tr>
<td style="text-align: left;">roleId </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>游戏角色ID</td>
</tr>
<tr>
<td style="text-align: left;">actId </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>红包活动Id,由乐玩运营同学提供</td>
</tr>
<tr>
<td style="text-align: left;">amountId </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>红包金额ID,不同ID对应不同的金额,具体由乐玩运营同学提供</td>
</tr>
<tr>
<td style="text-align: left;">cpOrderSn</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>游戏提现订单号,每次提现单号,要求唯一</td>
</tr>
<tr>
<td style="text-align: left;">timestamp</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>发起提现时间戳,单位:s</td>
</tr>
<tr>
<td style="text-align: left;">attach</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String</td>
<td>附加数据,在回调通知中原样返回,可作为自定义参数使用,长度不超过255</td>
</tr>
<tr>
<td style="text-align: left;">notifyUrl</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String</td>
<td>回调地址,长度不超过255。(也可提供回调地址给乐玩运营同学配置,配置和传值选一种方式即可)</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>签名,签名方式见下说明</td>
</tr>
</tbody>
</table>
<h5>返回示例</h5>
<pre><code>// 成功
{
&quot;code&quot;: 1,
&quot;msg&quot;: &quot;success&quot;,
&quot;d&quot;: []
}
// 异常
{&quot;code&quot;: -1, &quot;msg&quot;: &quot;check sign fail&quot;} // 签名错误
</code></pre>
<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>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">code </td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">integer</td>
<td>响应状态码,1成功,-1异常</td>
</tr>
<tr>
<td style="text-align: left;">msg</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>请求结果说明</td>
</tr>
<tr>
<td style="text-align: left;">d</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">array</td>
<td>响应数据主体</td>
</tr>
</tbody>
</table>
<h5>签名方式</h5>
<ul>
<li>同封禁请求[ <a href="https://www.showdoc.com.cn/p/85c2f3d8fe2f167177256afb9bd91118">https://www.showdoc.com.cn/p/85c2f3d8fe2f167177256afb9bd91118</a> ]</li>
</ul>
<h3>2、【红包活动提现回调】接口功能说明</h3>
<p>> 回调请求方式:POST</p>
<p>> Content-type: "application/json;charset='utf-8'"</p>
<p><strong>回调链接:CP方提供回调地址给到运营同学或者直接通过接口传值,两种方式都有值时优先以接口传值为准</strong></p>
<p><strong>CP方接收到回调请求后,需响应json格式的数据,未响应http状态码为200以及code不为1时,我方会重试该回调。
回调间隔按5s,15s, 60s,3min,10min,60min,120min梯度进行重试。</strong></p>
<p><strong>回调参数</strong> </p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>默认值</th>
<th>必含</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>game</td>
<td>String</td>
<td></td>
<td>是</td>
<td>游戏唯一标识</td>
</tr>
<tr>
<td>cpOrderSn</td>
<td>String</td>
<td></td>
<td>是</td>
<td>CP方订单唯一标识</td>
</tr>
<tr>
<td>orderSn</td>
<td>String</td>
<td></td>
<td>是</td>
<td>乐玩唯一订单标识</td>
</tr>
<tr>
<td>uid</td>
<td>String</td>
<td></td>
<td>是</td>
<td>用户唯一标识</td>
</tr>
<tr>
<td>roleId</td>
<td>String</td>
<td></td>
<td>是</td>
<td>角色ID</td>
</tr>
<tr>
<td>actId</td>
<td>String</td>
<td></td>
<td>是</td>
<td>活动ID</td>
</tr>
<tr>
<td>amountId</td>
<td>integer</td>
<td></td>
<td>是</td>
<td>金额ID</td>
</tr>
<tr>
<td>attach</td>
<td>String</td>
<td></td>
<td>是</td>
<td>附加数据,在回调通知中原样返回,可作为自定义参数使用</td>
</tr>
<tr>
<td>timeStamp</td>
<td>Integer</td>
<td></td>
<td>是</td>
<td>回调时间戳,单位:s</td>
</tr>
<tr>
<td>tradeState</td>
<td>String</td>
<td></td>
<td>是</td>
<td>提现结果,SUCCESS:成功;REJECT:拒审</td>
</tr>
</tbody>
</table>
<h5>- 回调验签方式</h5>
<p><strong>CP方验签方式同支付回调验签</strong></p>
<p><strong>CP方收到回调请求后应如下响应:</strong></p>
<p>> 成功响应:{"code":1,"msg":"SUCCESS"}</p>
<p>> 失败响应:{"code":0,"msg":"FAIL"}</p>
<h3>回调验签方式</h3>
<p>> 签名规则:Signature = MD5(POST_DATA + Lewan-Nonce + PAY_SECRET)。</p>
<p><strong>签名规则字段说明</strong></p>
<pre><code>Signature 表示签名串,通过请求头参数 Lewan-Authorization(HTTP_LEWAN_AUTHORIZATION) 获得。
Lewan-Nonce 随机字符串,通过请求头参数 Lewan-Nonce(HTTP_LEWAN_NONCE)获得。
POST_DATA 表示请求报文主体。
PAY_SECRET 表示【服务端签名密钥】,由我方和SDK一起提供。
Lewan-Id 表示回调请求唯一ID,CP方可记录该ID值,异常情况可通过该ID查找到我方发起回调的详情。</code></pre>
<p><strong>签名示例</strong></p>
<pre><code>例如:
POST_DATA = {&quot;game&quot;:&quot;sanguobawangzhuan-weixin&quot;, &quot;cpOrderSn&quot;:&quot;hezi_order2&quot;,&quot;orderSn&quot;:&quot;lewan123456&quot;,&quot;uid&quot;:&quot;4_10_0&quot;,&quot;roleId&quot;:&quot;Role123&quot;,&quot;actId&quot;:&quot;Lwhsnaosn&quot;,&quot;amountId&quot;:101, &quot;attach&quot;:&quot;123&quot;,&quot;timeStamp&quot;:1609925646,&quot;tradeState&quot;:&quot;SUCCESS&quot;};
Lewan-Nonce = abc;
PAY_SECRET = 123;
则签名:
Signature = MD5({&quot;game&quot;:&quot;sanguobawangzhuan-weixin&quot;, &quot;cpOrderSn&quot;:&quot;hezi_order2&quot;,&quot;orderSn&quot;:&quot;lewan123456&quot;,&quot;uid&quot;:&quot;4_10_0&quot;,&quot;roleId&quot;:&quot;Role123&quot;,&quot;actId&quot;:&quot;Lwhsnaosn&quot;,&quot;amountId&quot;:101, &quot;attach&quot;:&quot;123&quot;,&quot;timeStamp&quot;:1609925646,&quot;tradeState&quot;:&quot;SUCCESS&quot;}abc123);
Signature = 826a9a92d90973d743c66561a3d56243;</code></pre>