微信充值-20190118
<p>[TOC]</p>
<h2>修订记录</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">版本</th>
<th style="text-align: left;">日期</th>
<th style="text-align: left;">操作内容</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">v1.0.1</td>
<td style="text-align: left;">20190117</td>
<td style="text-align: left;">更新接口</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">v1.0.0</td>
<td style="text-align: left;">20190114</td>
<td style="text-align: left;">创建</td>
<td style="text-align: left;">-</td>
</tr>
</tbody>
</table>
<h2>接口文档维护者(前端 秦露)</h2>
<h2>接口约定</h2>
<h3>通用约定</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">名称</th>
<th style="text-align: left;">内容</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">协议</td>
<td style="text-align: left;">支持HTTPS/HTTP</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">接口地址</td>
<td style="text-align: left;">开发版:<a href="http://wxpayproxy.tcy365.org:1506/">http://wxpayproxy.tcy365.org:1506/</a><br>提测版:<a href="http://wxpayproxy.tcy365.org:1507">http://wxpayproxy.tcy365.org:1507</a> <br>稳定版:<a href="http://wxpayproxy.tcy365.org:1505/">http://wxpayproxy.tcy365.org:1505/</a><br> 正式版:<a href="http://wxpayproxy.tcy365.com/">http://wxpayproxy.tcy365.com/</a> <br>预发版:<a href="http://wxpayproxy.tcy365.com:2505">http://wxpayproxy.tcy365.com:2505</a></td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">Header</td>
<td style="text-align: left;">认证字段:AppKey</td>
<td style="text-align: left;">-</td>
</tr>
<tr>
<td style="text-align: left;">Content-Type</td>
<td style="text-align: left;">application/json;charset=utf-8</td>
<td style="text-align: left;">-</td>
</tr>
</tbody>
</table>
<h3>通用Code值</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">代号区间</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">1000-1999</td>
<td style="text-align: left;">系统通用错误</td>
</tr>
<tr>
<td style="text-align: left;">2000-2999</td>
<td style="text-align: left;">业务错误</td>
</tr>
</tbody>
</table>
<h2>系统通用错误</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">code</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">客户端提示信息</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">0</td>
<td style="text-align: left;">成功</td>
<td style="text-align: left;">请求成功</td>
</tr>
<tr>
<td style="text-align: left;">1000</td>
<td style="text-align: left;">参数异常</td>
<td style="text-align: left;">参数异常</td>
</tr>
<tr>
<td style="text-align: left;">9999</td>
<td style="text-align: left;">程序异常</td>
<td style="text-align: left;">程序异常</td>
</tr>
</tbody>
</table>
<h2>业务错误(例如活动项目)</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">code</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">客户端提示信息</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">2000</td>
<td style="text-align: left;">请求不合法</td>
<td style="text-align: left;">请求不合法</td>
</tr>
<tr>
<td style="text-align: left;">2001</td>
<td style="text-align: left;">游戏缩写不正确</td>
<td style="text-align: left;">游戏缩写不正确</td>
</tr>
<tr>
<td style="text-align: left;">2002</td>
<td style="text-align: left;">公众号id不正确</td>
<td style="text-align: left;">公众号id不正确</td>
</tr>
<tr>
<td style="text-align: left;">2003</td>
<td style="text-align: left;">用户不存在</td>
<td style="text-align: left;">用户不存在</td>
</tr>
<tr>
<td style="text-align: left;">2004</td>
<td style="text-align: left;">Token不合法</td>
<td style="text-align: left;">Token不合法</td>
</tr>
<tr>
<td style="text-align: left;">3000</td>
<td style="text-align: left;">订单号不存在</td>
<td style="text-align: left;">订单号不存在</td>
</tr>
</tbody>
</table>
<h2>枚举值约定</h2>
<p>以下都是由游戏商城提供的:</p>
<table>
<thead>
<tr>
<th style="text-align: left;">物品类型(GoodType)</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: left;">用户物品类</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: left;">银子</td>
</tr>
<tr>
<td style="text-align: left;">3</td>
<td style="text-align: left;">积分</td>
</tr>
<tr>
<td style="text-align: left;">4</td>
<td style="text-align: left;">积分送达类</td>
</tr>
<tr>
<td style="text-align: left;">5</td>
<td style="text-align: left;">虚拟币</td>
</tr>
</tbody>
</table>
<h2>特殊说明(需要给测试提供的接口)</h2>
<p>暂无</p>
<h2>其他说明</h2>
<p>下边的接口中的请求参数或者是请求头中的参数:UserId(同城游序列号)、GameCode(游戏code)、AccessToken、UserCode(服务端后台对应openid与unioid的)、PublicId 都从url上获取得到 。</p>
<h2>接口</h2>
<h3>接口1:获取充值面额列表数据</h3>
<p><strong>简要描述:</strong></p>
<ul>
<li>获取充值面额列表数据 </li>
</ul>
<p><strong>请求url:</strong></p>
<ul>
<li>api/Goods/GetList</li>
</ul>
<p><strong>适用版本:</strong> </p>
<ul>
<li>[v1.0+]</li>
</ul>
<p><strong>请求方式:</strong> </p>
<p><code>get</code></p>
<p><strong>请求参数:</strong> </p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>GameCode</td>
<td>string</td>
<td>游戏code</td>
<td>-</td>
</tr>
<tr>
<td>PublicId</td>
<td>int</td>
<td>公众号id</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>请求示例:</strong></p>
<pre><code>{
"GameCode": "dadaa", //游戏code
"PublicId":12,
}</code></pre>
<p><strong>返回参数:</strong></p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>GoodId</td>
<td>number</td>
<td>面额ID</td>
<td>-</td>
</tr>
<tr>
<td>Price</td>
<td>number</td>
<td>价格</td>
<td>-</td>
</tr>
<tr>
<td>GoodCount</td>
<td>number</td>
<td>银子</td>
<td>-</td>
</tr>
<tr>
<td>GoodType</td>
<td>number</td>
<td>物品类型</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>返回示例:</strong></p>
<pre><code>{
"Code":0, //code值
"Data":[{ //数据,目前是6个数据列表
"GoodId":1, // 面额ID
"Price":1, // 价格
"GoodType": 2, // 物品类型
"GoodCount":10000 // 银子
}],
"Message":""
}
</code></pre>
<p><strong>异常信息:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">code</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">客户端提示信息</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">2000</td>
<td style="text-align: left;">请求不合法</td>
<td style="text-align: left;">请求不合法</td>
</tr>
<tr>
<td style="text-align: left;">2001</td>
<td style="text-align: left;">游戏缩写不正确</td>
<td style="text-align: left;">游戏缩写不正确</td>
</tr>
<tr>
<td style="text-align: left;">2002</td>
<td style="text-align: left;">公众号id不正确</td>
<td style="text-align: left;">公众号id不正确</td>
</tr>
<tr>
<td style="text-align: left;">2003</td>
<td style="text-align: left;">商品信息不存在</td>
<td style="text-align: left;">商品信息不存在</td>
</tr>
</tbody>
</table>
<h3>接口2 获取用户历史充值记录</h3>
<p><strong>简要描述:</strong></p>
<ul>
<li>获取用户历史充值记录 </li>
</ul>
<p><strong>请求url:</strong></p>
<ul>
<li>api/users/GetHistory</li>
</ul>
<p><strong>适用版本:</strong> </p>
<ul>
<li>[v1.0+]</li>
</ul>
<p><strong>请求方式:</strong> </p>
<p><code>get</code></p>
<p><strong>请求参数:</strong> </p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>PublicId</td>
<td>int</td>
<td>公众号id</td>
<td>-</td>
</tr>
<tr>
<td>GameCode</td>
<td>string</td>
<td>游戏code</td>
<td>-</td>
</tr>
<tr>
<td>UserCode</td>
<td>string</td>
<td>用户code</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>请求示例:</strong></p>
<pre><code>{
"PublicId": 3432423, //公众号编号
"GameCode": "dadaa", //游戏code
"UserCode":"111"
}</code></pre>
<p><strong>返回参数:</strong></p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>UserId</td>
<td>number</td>
<td>用户序列号</td>
<td>-</td>
</tr>
<tr>
<td>NickName</td>
<td>string</td>
<td>用户昵称</td>
<td>-</td>
</tr>
<tr>
<td>GameName</td>
<td>string</td>
<td>游戏名</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>返回示例:</strong></p>
<pre><code>{
"Code": 0, //code值
"Data": {
"UserId": 2312312, // 同城游序列号
"NickName": "用户昵称", // 用户昵称
"GameName": "同城游打大A" // 游戏名
},
"Message": ""
}</code></pre>
<p><strong>异常信息:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">code</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">客户端提示信息</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">2000</td>
<td style="text-align: left;">请求不合法</td>
<td style="text-align: left;">请求不合法</td>
</tr>
<tr>
<td style="text-align: left;">2001</td>
<td style="text-align: left;">游戏缩写不正确</td>
<td style="text-align: left;">游戏缩写不正确</td>
</tr>
<tr>
<td style="text-align: left;">2002</td>
<td style="text-align: left;">公众号id不正确</td>
<td style="text-align: left;">公众号id不正确</td>
</tr>
<tr>
<td style="text-align: left;">2004</td>
<td style="text-align: left;">usercode不正确</td>
<td style="text-align: left;">usercode不正确</td>
</tr>
</tbody>
</table>
<h3>接口3 验证用户基础信息</h3>
<p><strong>简要描述:</strong></p>
<ul>
<li>验证用户基础信息</li>
</ul>
<p><strong>请求url:</strong></p>
<ul>
<li>api/users/Check</li>
</ul>
<p><strong>适用版本:</strong> </p>
<ul>
<li>[v1.0+]</li>
</ul>
<p><strong>请求方式:</strong> </p>
<p><code>get</code></p>
<p><strong>请求参数:</strong> </p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>UserId</td>
<td>number</td>
<td>同城游序列号,为空则不请求</td>
<td>-</td>
</tr>
<tr>
<td>GameCode</td>
<td>string</td>
<td>游戏code</td>
<td>-</td>
</tr>
<tr>
<td>PublicId</td>
<td>int</td>
<td>公众号id</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>请求示例:</strong></p>
<pre><code>{
"UserId": 3432423, //同城游序列号
"GameCode": "dadaa" //游戏code
"PublicId": 3432423, //公众号编号
}</code></pre>
<p><strong>返回参数:</strong></p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>UserId</td>
<td>number</td>
<td>用户序列号</td>
<td>-</td>
</tr>
<tr>
<td>NickName</td>
<td>string</td>
<td>用户昵称</td>
<td>-</td>
</tr>
<tr>
<td>GameName</td>
<td>string</td>
<td>游戏名</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>返回示例:</strong></p>
<pre><code>{
"Code": 0, //code值
"Data": {
"UserId": 2312312, // 同城游序列号
"NickName": "用户昵称", // 用户昵称
"GameName": "同城游打大A" // 游戏名
},
"Message": ""
}</code></pre>
<p><strong>异常信息:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">code</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">客户端提示信息</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">2000</td>
<td style="text-align: left;">请求不合法</td>
<td style="text-align: left;">请求不合法</td>
</tr>
<tr>
<td style="text-align: left;">2001</td>
<td style="text-align: left;">游戏缩写不正确</td>
<td style="text-align: left;">游戏缩写不正确</td>
</tr>
<tr>
<td style="text-align: left;">2002</td>
<td style="text-align: left;">公众号id不正确</td>
<td style="text-align: left;">公众号id不正确</td>
</tr>
<tr>
<td style="text-align: left;">2005</td>
<td style="text-align: left;">用户不存在</td>
<td style="text-align: left;">用户不存在</td>
</tr>
</tbody>
</table>
<h3>接口4:充值订单创建</h3>
<p><strong>简要描述:</strong></p>
<ul>
<li>充值订单创建</li>
</ul>
<p><strong>请求url:</strong></p>
<ul>
<li>api/Orders/Create</li>
</ul>
<p><strong>适用版本:</strong> </p>
<ul>
<li>[v1.0+]</li>
</ul>
<p><strong>请求方式:</strong> </p>
<p><code>post</code></p>
<p><strong>请求头参数:</strong></p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>是否必须</th>
<th>描述</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>AccessToken</td>
<td>string</td>
<td>是</td>
<td>-</td>
<td>过期后需要刷新页面处理</td>
</tr>
</tbody>
</table>
<p><strong>请求参数:</strong></p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必选</th>
<th>默认值</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>GoodId</td>
<td>number</td>
<td>是</td>
<td>0</td>
<td>面额ID</td>
<td>-</td>
</tr>
<tr>
<td>UserId</td>
<td>number</td>
<td>是</td>
<td>0</td>
<td>同城游序列号</td>
<td>-</td>
</tr>
<tr>
<td>PublicId</td>
<td>int</td>
<td>是</td>
<td>"公众号id"</td>
<td>-</td>
</tr>
<tr>
<td>GameCode</td>
<td>string</td>
<td>是</td>
<td>"游戏缩写"</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>请求示例:</strong></p>
<pre><code>{
"GoodId": 1, //面额ID
"UserId": 2312312, // 同城游序列号
"PublicId": 1111,
"GameCode": ""
}</code></pre>
<p><strong>返回参数:</strong></p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>AppId</td>
<td>string</td>
<td>公众号id</td>
<td>-</td>
</tr>
<tr>
<td>TimeStamp</td>
<td>string</td>
<td>时间戳(秒)</td>
<td>-</td>
</tr>
<tr>
<td>NonceStr</td>
<td>string</td>
<td>随机串</td>
<td>-</td>
</tr>
<tr>
<td>Package</td>
<td>string</td>
<td>订单详情扩展字符串</td>
<td>统一支付接口返回的prepay_id参数值</td>
</tr>
<tr>
<td>SignType</td>
<td>string</td>
<td>签名方式</td>
<td>签名类型,默认为MD5,支持HMAC-SHA256和MD5</td>
</tr>
<tr>
<td>PaySign</td>
<td>string</td>
<td>签名</td>
<td>-</td>
</tr>
<tr>
<td>OrderNo</td>
<td>string</td>
<td>充值订单号</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>返回示例:</strong></p>
<pre><code>{
"Code": 0, //code值
"Data": { //数据
"AppId": "wx3df697c72d97a798", // appId
"TimeStamp": "", // 时间戳(秒)
"NonceStr": "", // 随机串
"Package": "", // 订单详情扩展字符串
"SignType": "", //签名方式
"PaySign": "", //签名
"OrderNo": "" //充值订单号
},
"Message": ""
}</code></pre>
<p><strong>异常信息:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">code</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">客户端提示信息</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">2000</td>
<td style="text-align: left;">请求不合法</td>
<td style="text-align: left;">请求不合法</td>
</tr>
<tr>
<td style="text-align: left;">2001</td>
<td style="text-align: left;">游戏缩写不正确</td>
<td style="text-align: left;">游戏缩写不正确</td>
</tr>
<tr>
<td style="text-align: left;">2002</td>
<td style="text-align: left;">公众号id不正确</td>
<td style="text-align: left;">公众号id不正确</td>
</tr>
<tr>
<td style="text-align: left;">2005</td>
<td style="text-align: left;">用户不存在</td>
<td style="text-align: left;">用户不存在</td>
</tr>
<tr>
<td style="text-align: left;">2006</td>
<td style="text-align: left;">商品id不正确</td>
<td style="text-align: left;">商品id不正确</td>
</tr>
<tr>
<td style="text-align: left;">2007</td>
<td style="text-align: left;">访问token过期</td>
<td style="text-align: left;">访问token过期</td>
</tr>
</tbody>
</table>
<h3>接口5:充值成功页面</h3>
<p><strong>简要描述:</strong></p>
<ul>
<li>订单详情</li>
</ul>
<p><strong>请求url:</strong>
-api/Orders/GetInfo</p>
<p><strong>适用版本:</strong> </p>
<ul>
<li>[v1.0+]</li>
</ul>
<p><strong>请求方式:</strong> </p>
<p><code>get</code></p>
<p><strong>请求参数:</strong></p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必选</th>
<th>默认值</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>OrderNo</td>
<td>string</td>
<td>是</td>
<td>""</td>
<td>充值订单号</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>请求示例:</strong></p>
<pre><code>{
"OrderNo": "2321321312321321" //充值订单号
}</code></pre>
<p><strong>返回参数:</strong></p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必选</th>
<th>默认值</th>
<th>说明</th>
<th>限制长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>OrderNo</td>
<td>string</td>
<td>是</td>
<td>""</td>
<td>充值订单号</td>
<td>-</td>
</tr>
<tr>
<td>GoodCount</td>
<td>number</td>
<td>是</td>
<td>0</td>
<td>物品数量</td>
<td>-</td>
</tr>
<tr>
<td>Price</td>
<td>number</td>
<td>是</td>
<td>0</td>
<td>支付金额</td>
<td>-</td>
</tr>
<tr>
<td>PayTime</td>
<td>number</td>
<td>是</td>
<td>0</td>
<td>充值时间(时间戳,毫秒)</td>
<td>-</td>
</tr>
<tr>
<td>GoodType</td>
<td>number</td>
<td>是</td>
<td>0</td>
<td>物品类型</td>
<td>-</td>
</tr>
</tbody>
</table>
<p><strong>返回示例:</strong></p>
<pre><code>{
"Code": 0, //code值
"Data":{
"OrderNo": "2321321312321321" ,//充值订单号
"GoodCount": 20000, // 充值银子
"Price": 1, // 支付金额
"GoodType": 2, // 物品类型
"PayTime": 12132323231 // 充值时间(时间戳,毫秒)
},
"Message": ""
}</code></pre>
<p><strong>异常信息:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">code</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">客户端提示信息</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">2000</td>
<td style="text-align: left;">请求不合法</td>
<td style="text-align: left;">请求不合法</td>
</tr>
<tr>
<td style="text-align: left;">2008</td>
<td style="text-align: left;">订单不存在</td>
<td style="text-align: left;">订单不存在</td>
</tr>
</tbody>
</table>
<h2>前端技术评审文档</h2>
<p><a href="http://doc.uc108.org:8002/index.php?s=/169&page_id=3637">点击查看</a></p>