订单退款API
<h2>接口使用描述</h2>
<h4>0. 有优惠的订单,最大额度只能按<em>实收</em>金额退款,优惠全部即实付为0的,无需调用接口退款;(重要!!!!!!)</h4>
<h4>1. 交易时间超过一年的订单无法提交退款;</h4>
<h4>2. 微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号(部分退款每次提交的退款单号refundNo须不同)。申请退款总金额不能超过订单金额。 一笔退款明确失败后重新提交退款,则需要更换新的退款单号;</h4>
<h4>3. 请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次;</h4>
<h4>4. 错误或无效请求频率限制:6qps,即每秒钟异常或错误的退款申请请求不超过6次</h4>
<h4>5. 每个支付订单的部分退款次数不能超过50次;</h4>
<h4>6. 当订单未支付,不允许发起退款,此时会返回相应错误码;</h4>
<h4>7. 商户退款的金额须小于或等于当日成功对应收款方式的交易额,才能发起退款请求。比如,如果当前退款的订单为微信支付,金额为80元,必须要保证退款时当日收款的交易额大于80元,才能发起退款,否则会返回余额不足等相关错误。</h4>
<h4>8.退款只能退订单实收金额!!!!!!</h4>
<p>[订单查询 open/pay/query](<a href="https://www.showdoc.com.cn/liantuofu/658025876912528">https://www.showdoc.com.cn/liantuofu/658025876912528</a> "订单查询 open/pay/query")
有优惠情况,退款最多退实收金额,注意传参判断</p>
<pre><code> 交易金额 totalAmount:订单创建金额
优惠金额discountAmount:订单优惠金额
实收金额 receiptAmount :实际收款金额
退款时候 要判断一下退款金额是否&lt;=实收金额,否则不能退款</code></pre>
<h4>9.全部优惠的订单,不调用接口退款</h4>
<h4>10.订单subCode返回REFUNDING 需要循环调用退款查询接口 [订单退款查询open/refund/query][退款查询]</h4>
<h4>11.退款状态 returnRefundType 传1 保证退款中的状态返回</h4>
<h4>12.在软件中增加手动退款查询 检测按钮,可以对退款失败订单随时查询,查询后再次入账功能。</h4>
<h5>接口地址</h5>
<pre><code> 接口地址:https://api.liantuofu.com/open/refundV2</code></pre>
<p><br/></p>
<h4>请求参数<img src='<a href="https://www.showdoc.cc/server/api/common/visitfile/sign/bfc24f8d7eb93fae8e66d4ab2b4bc461?showdoc=.jpg'">https://www.showdoc.cc/server/api/common/visitfile/sign/bfc24f8d7eb93fae8e66d4ab2b4bc461?showdoc=.jpg'</a>; align='right' style=' width:300px;height:100 px'/></h4>
<table>
<thead>
<tr>
<th><strong>NO</strong></th>
<th><strong>字段</strong></th>
<th><strong>名称</strong></th>
<th><strong>长度</strong></th>
<th><strong>必填</strong></th>
<th><strong>示例</strong></th>
<th><strong>说明</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>appId</td>
<td>合作方标识</td>
<td>string</td>
<td>Y</td>
<td>EW_N2949193174</td>
<td>合作商户编码,用于以后所有接口发起请求时验签使用</td>
</tr>
<tr>
<td>2</td>
<td>sign</td>
<td>签名。具体参见“<a href="https://www.showdoc.cc/web/#/liantuofu?page_id=673453270295568">签名规则</a>”</td>
<td>string</td>
<td>Y</td>
<td>1b70687c8a4c72f50c749baf95a482c0</td>
<td>MD5加密验签值。具体参见“<a href="https://www.showdoc.cc/web/#/liantuofu?page_id=673453270295568">签名规则</a>”</td>
</tr>
<tr>
<td>3</td>
<td>random</td>
<td>随机数</td>
<td>string</td>
<td>Y</td>
<td>123</td>
<td>用来增加加密验签的复杂度,长度不限制,只限制传递数字,不支持中文,字母,特殊符号。</td>
</tr>
<tr>
<td>4</td>
<td>merchantCode</td>
<td>门店编号</td>
<td>string</td>
<td>Y</td>
<td>EW_N9479011740</td>
<td>门店编号,用于后续接口请求参数的使用</td>
</tr>
<tr>
<td>5</td>
<td>refundNo</td>
<td>商户退款订单号(自己系统生成唯一退款标识)</td>
<td>string(64)</td>
<td>Y</td>
<td>201805031737269202512322520412234</td>
<td>商户系统生成的退款单号,在商户方需全局唯一 每笔退款流水号标示唯一一笔退款交易,所有由商户发起的退款流水号均不能相同。 只能是数字、英文字母、“-”及“_” 同一退款单号多次请求只退一笔。</td>
</tr>
<tr>
<td>6</td>
<td>outTradeNo</td>
<td>商户订单号</td>
<td>string(64)</td>
<td>Y</td>
<td>CS100082018050166666</td>
<td>(与第三方退款订单号二选一)</td>
</tr>
<tr>
<td>7</td>
<td>outTransactionId</td>
<td>第三方退款订单号(支付时微信支付宝返回,显示在二维码支付凭证上,方便退款)</td>
<td>string(64)</td>
<td>N</td>
<td>201805031737269202512322520412234</td>
<td>第三方商户订单号(与接入方支付订单号二选一),支付或者异步通知或者订单查询时返回的,方便退款时直接使用支付凭证进行退款</td>
</tr>
<tr>
<td>8</td>
<td>refundAmount</td>
<td>退款金额</td>
<td>double</td>
<td>N</td>
<td>66.66</td>
<td>不填按全额退款,微信支付退款支持单笔交易分多次退款,申请退款总金额不能超过订单金额, 单位为元,支持两位小数</td>
</tr>
<tr>
<td>9</td>
<td>refundReason</td>
<td>退款的原因说明</td>
<td>string(256)</td>
<td>N</td>
<td>商品已售完</td>
<td>退款的原因说明,若商户传入,会在下发给用户的退款消息中体现退款原因</td>
</tr>
<tr>
<td>10</td>
<td>operatorId</td>
<td>操作员id(接口客户无需传递)</td>
<td>string</td>
<td>N</td>
<td>1234409009</td>
<td>收银员账号登陆时,登陆返回信息中的操作员ID(收银员ID)</td>
</tr>
<tr>
<td>11</td>
<td>returnRefundType</td>
<td>是否返回退款中状态 0否 1是(不传该值则不返回)</td>
<td>string</td>
<td>N</td>
<td>0</td>
<td>0否 1是(不传该值则不返回)</td>
</tr>
</tbody>
</table>
<hr />
<h4>响应参数</h4>
<table>
<thead>
<tr>
<th><strong>NO</strong></th>
<th><strong>字段</strong></th>
<th><strong>名称</strong></th>
<th><strong>长度</strong></th>
<th><strong>必填</strong></th>
<th><strong>示例</strong></th>
<th><strong>说明</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>code</td>
<td>结果</td>
<td>string</td>
<td>Y</td>
<td>SUCCESS</td>
<td>退款结果 SUCCESS:表示退款申请成功 FAILED:表示退款申请失败</td>
</tr>
<tr>
<td>2</td>
<td>msg</td>
<td>结果描述</td>
<td>string</td>
<td>Y</td>
<td>信息描述</td>
<td>无论是成功或者失败,message都会针对于当前的结果返回响应的结果描述</td>
</tr>
<tr>
<td>3</td>
<td>subCode</td>
<td>错误代码</td>
<td>string</td>
<td>N</td>
<td>REFUNDING</td>
<td>如果code为FAILED,subcode会返回详细的错误code,以便错误信息描述的更加精确 [详见《流程介绍》](<a href="https://www.showdoc.cc/liantuofu?page_id=658050854775952">https://www.showdoc.cc/liantuofu?page_id=658050854775952</a> "详见《流程介绍》")</td>
</tr>
<tr>
<td>4</td>
<td>subMsg</td>
<td>错误描述</td>
<td>string</td>
<td>N</td>
<td>EW_N2320993253</td>
<td>如果code为FAILED,subMsg会返回详细的错误描述,以便错误信息描述的更加精确</td>
</tr>
<tr>
<td>5</td>
<td>sign</td>
<td>签名</td>
<td>string</td>
<td>N</td>
<td>1b70687c8a4c72f50c749baf95a482c0</td>
<td>请求时传递的sign</td>
</tr>
<tr>
<td>6</td>
<td>random</td>
<td>随机数</td>
<td>string</td>
<td>N</td>
<td>123</td>
<td>请求时传递的随机数</td>
</tr>
<tr>
<td>7</td>
<td>outTradeNo</td>
<td>商户订单号</td>
<td>string(64)</td>
<td>Y</td>
<td>CS100082018050166666</td>
<td>由商户生成的该笔交易的全局唯一ID,商户需确保其唯一性,重新发起一笔支付要使用新订单号,避免重复支付。后续可通过该ID查询对应订单信息。 建议值:公司简称+门店编号+时间戳+序列 支持8-64位数字、英文字母、“-”及“_”,其他字符不支持</td>
</tr>
<tr>
<td>8</td>
<td>refundNo</td>
<td>退款订单号</td>
<td>string(64)</td>
<td>Y</td>
<td>201805031737269202512322520412234</td>
<td>商户系统生成的退款单号,在商户方需全局唯一 每笔退款流水号标示唯一一笔退款交易,所有由商户发起的退款流水号均不能相同。 只能是数字、英文字母、“-”及“_” 同一退款单号多次请求只退一笔。</td>
</tr>
<tr>
<td>9</td>
<td>refundAmount</td>
<td>退款金额</td>
<td>string(11)</td>
<td>Y</td>
<td>66.66</td>
<td>微信支付退款支持单笔交易分多次退款,申请退款总金额不能超过订单金额, 单位为元,支持两位小数</td>
</tr>
<tr>
<td>10</td>
<td>refundReason</td>
<td>退款的原因说明</td>
<td>string(256)</td>
<td>N</td>
<td>商品已售完</td>
<td>退款的原因说明,若商户传入,会在下发给用户的退款消息中体现退款原因</td>
</tr>
<tr>
<td>11</td>
<td>time</td>
<td>交易完成时间</td>
<td>string</td>
<td>Y</td>
<td></td>
<td>交易完成时间,格式为 yyyyMMddHHmmss</td>
</tr>
<tr>
<td>12</td>
<td>refundFee</td>
<td>第三方手续费退款金额</td>
<td>double</td>
<td>Y</td>
<td></td>
<td>第三方手续费退款金额</td>
</tr>
</tbody>
</table>
<p><br/><br/></p>
<h5>请求示例:</h5>
<pre><code>outTradeNo=2018072511400001&amp;refundNo=T2018072511400002&amp;refundAmount=1.9&amp;refundReason=jiuyaotuituitui&amp;operatorId=10181383&amp;sign=496ebd0bac405f869ad35f8fc2873591&amp;appId=SC_I5640724439&amp;random=6666666666666666666&amp;merchantCode=SC_I2528987310</code></pre>
<h5>响应示例(成功):</h5>
<pre><code class="language-json">{
&quot;code&quot;:&quot;SUCCESS&quot;,
&quot;msg&quot;:&quot;退款成功&quot;,
&quot;random&quot;:&quot;82sL1PeA&quot;,
&quot;sign&quot;:&quot;df41392becaf7b0be0daacd095dd8395&quot;,
&quot;outTradeNo&quot;:&quot;2018071914360874346783&quot;,
&quot;refundNo&quot;:&quot;R2018071915231949322900&quot;,
&quot;refundAmount&quot;:5,
&quot;refundFee&quot;:0.03,
&quot;time&quot;:&quot;20180719152319&quot;
}</code></pre>
<h5>响应示例(失败):</h5>
<pre><code class="language-json">{
&quot;outTradeNo&quot;:&quot;201807171740249&quot;,
&quot;refundNo&quot;:&quot;R201807171740249&quot;,
&quot;refundAmount&quot;:1,
&quot;refundReason&quot;:&quot;&quot;,
&quot;code&quot;:&quot;FAILED&quot;,
&quot;msg&quot;:&quot;退款失败&quot;,
&quot;subCode&quot;:&quot;REFUND_NO_AOUNT_ERROR&quot;,
&quot;subMsg&quot;:&quot;此订单已经全部退款,不能再次发起退款请求&quot;
}</code></pre>
<h5>错误码</h5>
<table>
<thead>
<tr>
<th>错误码</th>
<th>错误描述</th>
<th>建议处理</th>
</tr>
</thead>
<tbody>
<tr>
<td>REFUND_NO_AOUNT_ERROR</td>
<td>此订单已经全部退款,不能再次发起退款请求</td>
<td>核实自己是否已经发起退款</td>
</tr>
<tr>
<td>REFUNDING</td>
<td>退款申请中</td>
<td>调用查询接口,查询退款状态</td>
</tr>
<tr>
<td>SYSTEM_ERROR</td>
<td>系统异常</td>
<td>调用查询接口,查询退款状态</td>
</tr>
<tr>
<td>PARAMETER_ERROR</td>
<td>参数错误</td>
<td>传参不对,检查一下入参</td>
</tr>
</tbody>
</table>
<p>[1]: <a href="https://www.showdoc.com.cn/liantuofu/658025876912528">https://www.showdoc.com.cn/liantuofu/658025876912528</a> "订单查询接口 "
[订单查询]: <a href="https://www.showdoc.com.cn/liantuofu/658025876912528">https://www.showdoc.com.cn/liantuofu/658025876912528</a> "订单查询"
[退款查询]: <a href="https://www.showdoc.com.cn/liantuofu/658056893477643">https://www.showdoc.com.cn/liantuofu/658056893477643</a> "退款查询"
[退款查询]: <a href="https://www.showdoc.com.cn/liantuofu/658056893477643">https://www.showdoc.com.cn/liantuofu/658056893477643</a> "退款查询"</p>