品牌商品下单接口
<p><strong>请求URL:</strong> </p>
<ul>
<li><code>/api/coupon/place_order</code></li>
</ul>
<p><strong>请求方式:</strong></p>
<ul>
<li>POST </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;">id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>商品ID</td>
</tr>
<tr>
<td style="text-align: left;">count</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>数量</td>
</tr>
<tr>
<td style="text-align: left;">out_trade_no</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>外部订单号</td>
</tr>
<tr>
<td style="text-align: left;">recharge_number</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>直充类型,充值的帐号</td>
</tr>
</tbody>
</table>
<blockquote>
<p><span style="color:red;">app_test 下单可用的商品ID:7,50,60</span></p>
</blockquote>
<p><strong>返回参数:</strong></p>
<ul>
<li>两层结构,外部结构固定,data数据由json序列化之后 AES加密 </li>
<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>
<tr>
<td>data</td>
<td>string</td>
<td>数据</td>
</tr>
</tbody>
</table>
<ul>
<li>内部结构</li>
</ul>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>coupons</td>
<td>array</td>
<td>卡券信息</td>
</tr>
<tr>
<td>--goods_type</td>
<td>string</td>
<td>卡券类型:LINK 链接,PICTURE 图片,NUMBER_PASSWORD 卡号和密码,PASSWORD 密码</td>
</tr>
<tr>
<td>--goods_link</td>
<td>string</td>
<td>链接值,goods_type为LINK或PICTURE时有值</td>
</tr>
<tr>
<td>--goods_number</td>
<td>string</td>
<td>卡号,goods_type为NUMBER_PASSWORD时有值</td>
</tr>
<tr>
<td>--goods_password</td>
<td>string</td>
<td>卡密,goods_type为NUMBER_PASSWORD或PASSWORD时有值</td>
</tr>
<tr>
<td>--effective_time</td>
<td>string</td>
<td>过期时间</td>
</tr>
<tr>
<td>straights</td>
<td>array</td>
<td>直充信息,预留字段</td>
</tr>
</tbody>
</table>
<p><strong>返回示例</strong>(卡券类型如下,直充类型data为空字符串,回调接口告知订单状态)</p>
<pre><code> {
"code": 0,
"msg": "成功!",
"data": "3vGibw91EY7yzD1JINLi8tLBYQXlpvoTsAt8JWp7N6O3+IfHogmzBjirREn1ojFd7x6LaypUhXuHTM9G4Z0DrIRDEYGvcHGEkFjRJ7nyiGfH7v7/gCfw2Ssx6jp8ATf+fTcZvRlwH8JlczD0BIGaz18F1s9LGBmsd5ML8CljuzfL3qLnUK7Ve8ofAmMkFn/Z4Y20Ldanssnsk6WOvgQhqBVwD6ilgHTlUrTp7zlS+5bdxS7VGNzzWOmwocd1A4IfbhUw7YWom/n0fN/cGLCEfpR6UKhoPXGB+2G7b84lRbkLPawxc5oVorlQag5PyttD1oMO/I8AJK8K4ge9fZwW6mROWRqa+/O+Fi7DJY0Ay1TmtCmauPGYEjJSWUHRPzIq2uNsYImJAs5KAQl27EuoVA=="
}</code></pre>
<p>解密之后数据:</p>
<pre><code>{
"code": 0,
"msg": "成功!",
"data": {
"coupons": [
{
"goods_type": "PASSWORD",
"goods_link": "",
"goods_number": "",
"goods_password": "3NG1ecfEYUbFdgF",
"effective_time": "2020-04-05 00:00:00"
},
{
"goods_type": "PASSWORD",
"goods_link": "",
"goods_number": "",
"goods_password": "5XscY4T8cDBfPXD",
"effective_time": "2020-04-05 00:00:00"
}
]
}
}</code></pre>
<p><strong>卡券类下单时序图</strong>
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/b3979f5f46ff68f5e393b38faddb530f?showdoc=.jpg" alt="" /></p>
<p><strong> 直充类下单时序图</strong>
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/26f5c094d1edb9d573898475f11e449d?showdoc=.jpg" alt="" /></p>
<hr />
<p><strong>备注:</strong></p>
<ul>
<li>
<p>AES解密
走 <strong>AES-128-CBC</strong> 模式,<strong>key</strong> 与 <strong>iv向量</strong> 为 <strong>app_key</strong> 对应密钥 <strong>前16位</strong>。</p>
</li>
<li>php示例:</li>
</ul>
<pre><code class="language-php">$str = "接口返回aes加密串";
$encrypted = base64_decode($str);
$key = $iv = substr("appSecret",0,16);
// 解密的结果是 json字符串
$decrypted = openssl_decrypt($encrypted, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $key);</code></pre>