fuyu 5 年之前
父节点
当前提交
0046d7ad19
共有 1 个文件被更改,包括 59 次插入53 次删除
  1. 59 53
      application/inter/controller/Wechat.php

+ 59 - 53
application/inter/controller/Wechat.php

@@ -50,63 +50,69 @@ class Wechat extends Base {
     }
 
     public function  wechatCallback() {
-        // $param = $_REQUEST['param'];
-        $repsone = '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';
-        Log::record('-----微信支付回调----开始----');
+        try {
+             // $param = $_REQUEST['param'];
+            $repsone = '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';
+            Log::record('-----微信支付回调----开始----');
 
-        Log::record('-----微信支付返回----xml----');
-        $xml = file_get_contents("php://input");
-        Log::record($xml);
-        Log::record('-----xml转数组--------');
-        $data = (array)simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); //将微信返回的XML 转换成数组
-        Log::record($data);
-        $out_trade_no = $data['out_trade_no'];
-        $data['timestamp'] = time();
-        Log::record('-----添加流水记录----');
-        Log::record($data);
-        Db::table("wechat_pay_log")->insert($data);
+            Log::record('-----微信支付返回----xml----');
+            $xml = file_get_contents("php://input");
+            Log::record($xml);
+            Log::record('-----xml转数组--------');
+            $data = (array)simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); //将微信返回的XML 转换成数组
+            Log::record($data);
+            $out_trade_no = $data['out_trade_no'];
+            $data['timestamp'] = time();
+            Log::record('-----添加流水记录----');
+            Log::record($data);
+            Db::table("wechat_pay_log")->insert($data);
 
-        Log::record('-----获取订单信息-----');
-        $order = Db::table("remote_order")->where("id", $out_trade_no)->field("id, status, super_doctor_id, application_id, hospital_id, doctor_id, exam_class")->find();
-        Log::record($order);
-        if($order && $order['status'] === Application::ORDER_STATUS['CREATE']) {
-            $order['status'] = Application::ORDER_STATUS['PAYCOMPLTET'];
-            $d = $order['super_doctor_id'];
-            $aid = $order['application_id'];
-            // todo 消息通知
-            Log::record('-----更新订单状态-----');
-            DB::table("remote_order")->where("id", $out_trade_no)->update($order);
-            $application = DB::table('remote_application')->where('id', $order['application_id'])->field('exam_id')->find();
-            $exam_id = $application['exam_id'];
-            $r_info = DB::table('report')->where('exam_id',$exam_id)->where('remote_application_id', $aid)->find();
-            $t = '收到一条远程诊断申请';
-            $ins = DB::table('institution')->where('id',$order['hospital_id'])->field('name')->find();
-            $doctor = DB::table('doctors')->where('id',$order['doctor_id'])->field('realname')->find();
-            $c = $ins['name'].$doctor['realname'].'医师向您发起一条远程诊断申请';
-            $type = '1';
-            $url = Message::url(null, $exam_id,1,$order['exam_class'],$r_info['id'],$aid);
-            Log::record('-----系统内消息通知-----');
-            Message::insert($t,$c,$d,$type,$url,1,$aid);
-                //保存  申请
-            if(empty($d)) {
-                Log::record('---微信支付回调---结束---没有远程医生');
-                return $repsone;
-            }
-            $dinfo = DB::table('doctors')->where('id',$d)->find();
-            $d_phone = $dinfo['phone'];
-            $d_name = $dinfo['realname'];
-            if($order['is_urgent'] === 1) {
-                $d_time = date('H:i',strtotime('+30 min'));
-            } else {
-                $d_time = date('H:i',strtotime('+1 hour'));
-            }
-            if($dinfo['institution_id'] == '22100003' || $dinfo['send_sms'] == 1){ //魏庙
-                Log::record('-----短信通知-----');
-                send_message::sendSms2Apply($d_phone,$d_time,$d_name);
+            Log::record('-----获取订单信息-----');
+            $order = Db::table("remote_order")->where("id", $out_trade_no)->field("id, status, super_doctor_id, application_id, hospital_id, doctor_id, exam_class")->find();
+            Log::record($order);
+            if($order && $order['status'] === Application::ORDER_STATUS['CREATE']) {
+                $order['status'] = Application::ORDER_STATUS['PAYCOMPLTET'];
+                $d = $order['super_doctor_id'];
+                $aid = $order['application_id'];
+                // todo 消息通知
+                Log::record('-----更新订单状态-----');
+                DB::table("remote_order")->where("id", $out_trade_no)->update($order);
+                $application = DB::table('remote_application')->where('id', $order['application_id'])->field('exam_id')->find();
+                $exam_id = $application['exam_id'];
+                $r_info = DB::table('report')->where('exam_id',$exam_id)->where('remote_application_id', $aid)->find();
+                $t = '收到一条远程诊断申请';
+                $ins = DB::table('institution')->where('id',$order['hospital_id'])->field('name')->find();
+                $doctor = DB::table('doctors')->where('id',$order['doctor_id'])->field('realname')->find();
+                $c = $ins['name'].$doctor['realname'].'医师向您发起一条远程诊断申请';
+                $type = '1';
+                $url = Message::url(null, $exam_id,1,$order['exam_class'],$r_info['id'],$aid);
+                Log::record('-----系统内消息通知-----');
+                Message::insert($t,$c,$d,$type,$url,1,$aid);
+                    //保存  申请
+                if(empty($d)) {
+                    Log::record('---微信支付回调---结束---没有远程医生');
+                    return $repsone;
+                }
+                $dinfo = DB::table('doctors')->where('id',$d)->find();
+                $d_phone = $dinfo['phone'];
+                $d_name = $dinfo['realname'];
+                if($order['is_urgent'] === 1) {
+                    $d_time = date('H:i',strtotime('+30 min'));
+                } else {
+                    $d_time = date('H:i',strtotime('+1 hour'));
+                }
+                if($dinfo['institution_id'] == '22100003' || $dinfo['send_sms'] == 1){ //魏庙
+                    Log::record('-----短信通知-----');
+                    send_message::sendSms2Apply($d_phone,$d_time,$d_name);
+                }
             }
+            Log::record('---微信支付回调---结束---');
+            return $repsone;
+        } catch (\Throwable $th) {
+            Log::record('支付回调异常');
+            Log::record($th->getMessage());
+            //throw $th;
         }
-        Log::record('---微信支付回调---结束---');
-        return $repsone;
 
 
         // $order_id = $param['order_id'];