【类 型】:factor 退款接口
【原 因】:前端判断,后端也进行已发货状态的合法判断 【过 程】:1.已发货订单 退款必须提交 货物退款之后的变化状态 2.把货物状态标记到退款订单号里 3.退款回调判断有标记 处理数据库及货装状态字段 【影 响】:
This commit is contained in:
parent
42295647bb
commit
7d1b0220f4
@ -61,7 +61,7 @@ class PayController extends PublicController
|
|||||||
echo json_encode(array('status' => 0, 'msg' => '退款参数有误'));
|
echo json_encode(array('status' => 0, 'msg' => '退款参数有误'));
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
// 获取订单信息
|
/*获取订单信息*/
|
||||||
$where['shop_id'] = $_REQUEST['shop_id'];
|
$where['shop_id'] = $_REQUEST['shop_id'];
|
||||||
$where['order_sn'] = $_REQUEST['order_sn'];
|
$where['order_sn'] = $_REQUEST['order_sn'];
|
||||||
$field = array('order_sn, total_price, pay_sn,main_status,shop_id');
|
$field = array('order_sn, total_price, pay_sn,main_status,shop_id');
|
||||||
@ -70,10 +70,19 @@ class PayController extends PublicController
|
|||||||
echo json_encode(array('status' => 0, 'msg' => '订单不存在'));
|
echo json_encode(array('status' => 0, 'msg' => '订单不存在'));
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
//后端订单检查
|
||||||
|
if ($order['shipment_status'] == "已发货" && ($_REQUEST['refund_Shipment'] != "已送达" || $_REQUEST['refund_Shipment'] != "未送达")) {
|
||||||
|
echo json_encode(array('status' => 0, 'msg' => '请确认货物状态'));
|
||||||
|
exit();
|
||||||
|
}
|
||||||
if ($order['total_price'] < $_REQUEST['refund_price']) {
|
if ($order['total_price'] < $_REQUEST['refund_price']) {
|
||||||
echo json_encode(array('status' => 0, 'msg' => '退款申请超额'));
|
echo json_encode(array('status' => 0, 'msg' => '退款申请超额'));
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
if ($order['main_status'] == "已完成") {
|
||||||
|
echo json_encode(array('status' => 0, 'msg' => '已完成订单不可申请退款'));
|
||||||
|
exit();
|
||||||
|
}
|
||||||
if ($order['main_status'] == "已退款") {
|
if ($order['main_status'] == "已退款") {
|
||||||
// 构建发布主题 并向地面终端提示刷新信息
|
// 构建发布主题 并向地面终端提示刷新信息
|
||||||
$topic = 'refreshQuestList/' . $order['shop_id'];
|
$topic = 'refreshQuestList/' . $order['shop_id'];
|
||||||
@ -81,16 +90,17 @@ class PayController extends PublicController
|
|||||||
echo json_encode(array('status' => 1, 'msg' => '此订单已完成退款'));
|
echo json_encode(array('status' => 1, 'msg' => '此订单已完成退款'));
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
if ($order['main_status'] == "已完成") {
|
|
||||||
echo json_encode(array('status' => 0, 'msg' => '已完成订单不可申请退款'));
|
/*设置退款参数*/
|
||||||
exit();
|
//如果订单是已送货状态并且 前端发过来货物状态为 在退款订单号里面标记delivered 再回调时判断有这个标记 把货物状态改为已送达
|
||||||
|
if ($order['shipment_status'] == "已发货" && $_REQUEST['refund_Shipment'] == "已送达") {
|
||||||
|
$out_refund_no = $order['order_sn'] . '_' . $_REQUEST['refund_type'] . '_delivered'; // 商户退款单号
|
||||||
|
} else {
|
||||||
|
$out_refund_no = $order['order_sn'] . '_' . $_REQUEST['refund_type'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 设置退款参数
|
|
||||||
$refundParameter = [
|
$refundParameter = [
|
||||||
'out_trade_no' => $order['order_sn'], // 商户订单号
|
'out_trade_no' => $order['order_sn'], // 商户订单号
|
||||||
'out_refund_no' => $order['order_sn'] . '_' . $_REQUEST['refund_type'], // 商户退款单号
|
'out_refund_no' => $out_refund_no, // 商户退款单号
|
||||||
'amount' => [
|
'amount' => [
|
||||||
'refund' => $_REQUEST['refund_price'] * 100, // 退款金额,单位:分
|
'refund' => $_REQUEST['refund_price'] * 100, // 退款金额,单位:分
|
||||||
'total' => $order['total_price'] * 100, // 订单金额,单位:分
|
'total' => $order['total_price'] * 100, // 订单金额,单位:分
|
||||||
@ -130,6 +140,9 @@ class PayController extends PublicController
|
|||||||
} elseif ($refundType == "seller") { //卖家主动退
|
} elseif ($refundType == "seller") { //卖家主动退
|
||||||
$data['refund_status'] = "主动退";
|
$data['refund_status'] = "主动退";
|
||||||
}
|
}
|
||||||
|
if (strpos($outRefundNo, 'delivered') !== false) { //有delivered标记 货物状态改为已送达
|
||||||
|
$data['shipment_status'] = "已送达";
|
||||||
|
}
|
||||||
// 更新订单
|
// 更新订单
|
||||||
$orderDb->where($where)->data($data)->save();
|
$orderDb->where($where)->data($data)->save();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user