马蜂窝开放平台旅行商城订单,同意退款接口(请求action:sales.refund.confirm)主要用于确认用户提交退款请求;
接口调用链接:http://open.mafengwo.cn/docs/api/41.html
用户在提交退款申请之后,商家将收到的马蜂窝推送的待确认退款请求,此时退款信息中主要包括正在退款项中的需退款数量(num),但是退款金额(refund_fee)为空;具体的退款金额,需要商家调用同意退款接口(请求action:sales.refund.confirm)进行确认和状态变更;
订单退款确认接口,主要用于确认退款单中购买项的退款个数和实际的退款金额;
主要字段说明:
1、is_total:
接口说明:用于标识完成退款的订单是否还需要进行;
1)is_total = 0,表示商家确认退款后,交易还在继续,主要用于部分退款操作;
2)is_total = 1,此时无论订单是否还有未退款数量和金额,都表示商家与用户的交易关闭。订单变更为“已完成”状态,订单可发起对账,用户无法对订单进行点评;
2、calc_type:
接口说明用于标识实际退款金额的退款标识:
1)当calc_type = 1(默认值),马蜂窝在收到商家回传的refund_fee之后,此时还会根据订单原始金额/用户实际支付 金额的比例计算出給用户实际退款的钱;
例:订单原始金额为100元,用户实际支付80元(有优惠),此时 calc_type = 1,商家回传 refund_fee = 80,则实际給用户退款金额为:80*(80/100)= 64 元;
注:商家可取订单详情接口购买费用项items[]的费用项的单项金额和退款项目num,计算出实际退款的refund_fee;
<1> 全部退款:
refund_fee 取 订单详情 items[] 中的 total_price(费用项原始总金额);
<2> 订单部分退款:
refund_fee 取 订单详情 items[] 中的 price(费用项单价金额)*退费用项数量,可保证按数量完成准确退款(马蜂窝根据优惠计算实际退款金额)
注意:当calc_type = 1时,refund_fee不能够超过订单原始金额(totalFee),此字段可以通过action:sales.order.list.get 或 sales.order.detail.get 获取;
2)当calc_type = 2,则马蜂窝将直接根据商家回传的refund_fee作为实际給用户的退款金额完成退款;
例:订单原始金额为100元,用户实际支付80元,此时 calc_type = 1,商家回传 refund_fee = 80,则实际給用户退款金额为:80元;
注意:当calc_type = 2时,refund_fee不能够超过订单当前剩余可退金额(remain_payment_fee),此字段可以通过action:sales.refund.list.get 或 sales.refund.detail.get 获取;
3)当calc_type = 3,则马蜂窝将直接根据商家返回的退款数量num的取值,确认订单的退款金额,不再参考商家通过接口回传的refund_fee取值,实际退款金额 = num * 购买项原始金额(price);
注意:当num*price >= 订单剩余可退金额,则马蜂窝将完成订单此购买项的所有金额退款;
- calc_type 取值计算流程图说明: