类型 |
规范点 |
原因 |
网络 |
确保网络顺畅 |
防止接口调用失败 |
业务操作规则 |
接口支持重复调用,但必须确保每个合作伙伴每个退款批次号(batch_no)的唯一性。 |
防止重复退款 |
同一批明细里(detail_data)不允许包含两条交易号相同的退款明细 |
防止重复退款 |
|
必须保证要退款的账号余额充足 |
避免退款不成功 |
|
要退款的交易号必须存在且已经是付款成功状态,即交易状态(TRADE_STATUS)是TRADE_SUCCESS的状态。 |
避免退款不成功 |
|
收款账号不是签约账号,即参数seller_email填写的支付宝账号对应的合作者身份ID不是参数partner对应的合作者身份ID,该seller_email填写的支付宝账号必须与平台或者退款接口使用商户签约支付圈接口。 |
否则退款时会报没有签约的错误,即“PARTNER_NOT_SIGN_PROTOCOL”。 |
|
如果请求支付宝以后IS_SUCCESS返回T,那么当该批次中有一个或多个交易退款失败,此时不影响整个批次中其他交易的退款。 |
|
|
如果接口中设置了notify_url,当请求支付宝以后IS_SUCCESS返回为F时,支付宝系统不会发送服务器异步通知。 |
对请求的校验未通过 |
|
余额支付功能关闭的情况下,接口退款不受影响。 |
保证商户顺利完成交易退款 |
|
该接口支持单笔和批量退款,批量退款最多一次支持1000笔,50笔是最高效的退款笔数。数据请求以表单POST方式发送到支付宝。 |
无法传递大量数据 |
|
一笔交易可以多次退款,只需要遵守多次退款的总金额不超过该笔交易付款金额的原则。 |
支持多次退款 |
|
一笔交易的退款次数上限为99次 |
超过该次数则支付宝系统不会处理该笔交易的退款,如果接口中设置了notify_url,那么支付宝系统也不会发送服务器异步通知。 |
|
需要对退款成功后的异步通知返回结果做所有返回参数的解析分类,判断交易状态即可。 |
防止未来业务变更,有更好的兼容性。 |
|
操作退款时需要安装数字证书或支付盾等其他安全产品。 |
有密退款时需要输入支付密码 |
|
单笔数据集规则 |
退款笔数总和要等于参数batch_num的值 |
数据一致,防止发生退款金额错误。 |
退款资金流向 |
客户银行卡挂失或者注销将无法退回到客户账户中。需要商户向客户收集新的银行卡号并且提供声明对新的银行卡号正确性负责,委托支付宝退款。 |
退回到卡的情况:信用卡、信用卡卡通、Q账号、支付宝中间账号(例如:0571-88158090@alipay.com)支付的订单;其他的实时到账退到支付宝余额账户。 |
接口异常 |
异步处理如果响应时间过长直接导致退款返回失败,或者退款通知超过24小时未发出,则可以人工进行重新提交请求。 |
可能是支付宝的消息积压导致异步调度任务失败 |