【类 型】:fix 退款接口 回滚

【原  因】:还是使用 单独得接口控制 已经发货得订单,因为还要处理站点列表得帮当航线字段 在退款接口处理 逻辑不清晰
【过  程】:
【影  响】:
This commit is contained in:
tk 2024-08-06 19:18:20 +08:00
parent 836d792d66
commit 9a0e92acb5

View File

@ -61,30 +61,19 @@ class PayController extends PublicController
echo json_encode(array('status' => 0, 'msg' => '退款参数有误'));
exit();
}
/*获取订单信息*/
// 获取订单信息
$where['shop_id'] = $_REQUEST['shop_id'];
$where['order_sn'] = $_REQUEST['order_sn'];
$field = array('order_sn, total_price, pay_sn,main_status,shop_id');
$orderDb = D('order');
//后端订单检查
if (!$order = $orderDb->where($where)->field($field)->find()) {
echo json_encode(array('status' => 0, 'msg' => '订单不存在'));
exit();
}
if ($order['shipment_status'] == "已发货") {
if (!($_REQUEST['refund_Shipment'] == "已送达" || $_REQUEST['refund_Shipment'] == "未送达")) {
echo json_encode(array('status' => 0, 'msg' => '请确认货物状态'));
exit();
}
}
if ($order['total_price'] < $_REQUEST['refund_price']) {
echo json_encode(array('status' => 0, 'msg' => '退款申请超额'));
exit();
}
if ($order['main_status'] == "已完成") {
echo json_encode(array('status' => 0, 'msg' => '已完成订单不可申请退款'));
exit();
}
if ($order['main_status'] == "已退款") {
// 构建发布主题 并向地面终端提示刷新信息
$topic = 'refreshQuestList/' . $order['shop_id'];
@ -92,17 +81,16 @@ class PayController extends PublicController
echo json_encode(array('status' => 1, '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'];
if ($order['main_status'] == "已完成") {
echo json_encode(array('status' => 0, 'msg' => '已完成订单不可申请退款'));
exit();
}
// 设置退款参数
$refundParameter = [
'out_trade_no' => $order['order_sn'], // 商户订单号
'out_refund_no' => $out_refund_no, // 商户退款单号
'out_refund_no' => $order['order_sn'] . '_' . $_REQUEST['refund_type'], // 商户退款单号
'amount' => [
'refund' => $_REQUEST['refund_price'] * 100, // 退款金额,单位:分
'total' => $order['total_price'] * 100, // 订单金额,单位:分
@ -142,10 +130,6 @@ class PayController extends PublicController
} elseif ($refundType == "seller") { //卖家主动退
$data['refund_status'] = "主动退";
}
if (strpos($outRefundNo, 'delivered') !== false) { //有delivered标记 货物状态改为已送达
$data['shipment_status'] = "已送达";
}
$this->publish("demo", $outRefundNo);
// 更新订单
$orderDb->where($where)->data($data)->save();
}