diff --git a/FlyCube/MpApi/Controller/PayController.class.php b/FlyCube/MpApi/Controller/PayController.class.php index 598012a..1c65688 100644 --- a/FlyCube/MpApi/Controller/PayController.class.php +++ b/FlyCube/MpApi/Controller/PayController.class.php @@ -55,7 +55,11 @@ class PayController extends PublicController // 总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断 $this->isPower(); - + // post参数检查 + if ($_REQUEST['refund_price'] && $_REQUEST['order_sn'] && $_REQUEST['shop_id'] && ($_REQUEST['refundType'] == 'buyer' || $_REQUEST['refundType'] == 'seller')) { + echo json_encode(array('status' => 0, 'msg' => '退款参数有误')); + exit(); + } // 获取订单信息 $where['shop_id'] = $_REQUEST['shop_id']; $where['order_sn'] = $_REQUEST['order_sn']; @@ -107,23 +111,28 @@ class PayController extends PublicController try { // 实例化 Yansongda Pay 并处理回调 $result = Pay::wechat($this->config)->callback(); - $outRefundNo = $result['resource']['ciphertext']['out_refund_no']; - $refundType = substr($outRefundNo, strrpos($outRefundNo, '_') + 1); - $this->publish("demo", $refundType); - // 验证成功,处理业务逻辑 if ($result['resource']['ciphertext']['refund_status'] == 'SUCCESS') { $where['order_sn'] = $result['resource']['ciphertext']['out_trade_no']; // 获取订单号 $orderDb = D('order'); // 实例化订单模型 - $data['main_status'] = '已退款'; // 更新订单状态为已退款 + $data['main_status'] = "已退款"; // 更新订单状态为已退款 $data['refund_time'] = time(); // 标记退款时间 $data['refund_sn'] = $result['resource']['ciphertext']['refund_id']; // 退款单号 $data['refund_price'] = $result['resource']['ciphertext']['amount']['refund'] / 100; // 退款金额,单位:元 + $outRefundNo = $result['resource']['ciphertext']['out_refund_no']; + $refundType = substr($outRefundNo, strrpos($outRefundNo, '_') + 1); //截取退款类型 + if ($refundType == "buyer") { //买家申请 + $data['refund_status'] = "已同意"; + } elseif ($refundType == "seller") { //卖家主动退 + $data['refund_status'] = "主动退"; + } // 更新订单 $orderDb->where($where)->data($data)->save(); } // 构建发布主题 并向地面终端提示刷新信息 - $topic = 'refreshQuestList/' . $result['resource']['ciphertext']['shop_id']; + $field = array('shop_id'); + $shop_id = $orderDb->where($where)->field($field)->find(); + $topic = 'refreshQuestList/' . $shop_id; $this->publish($topic, 1); } catch (\Exception $e) { // 捕获并记录可能的异常