Răsfoiți Sursa

修改购物车

jun 6 luni în urmă
părinte
comite
4b1f3f189b

+ 9 - 9
app/Http/Controllers/Api/Course.php

@@ -1,7 +1,8 @@
 <?php namespace App\Http\Controllers\Api;
 
 use App\Http\Controllers\Api\Api;
-use App\Models\Orders as Model;
+use App\Models\Course as Model;
+use App\Models\Orders as Orders;
 use App\Models\Product;
 use App\Models\Product\Skus as ProductSkus;
 use App\Http\Requests\Api\Course as Request;
@@ -69,7 +70,7 @@ class Course extends Api{
                 // 返回结果
                 return						json_send(['code'=>'success','msg'=>'预约失败','data'=>['id'=>null]]);
             // 更新课程表预约数据
-            $updateSchedule =  $CourseSchedule->query()->where('id','=',$scheduleId)->update(['reservation_number'=>$ordersProductInfo['reservation_number']+1]);
+            $updateSchedule =  $CourseSchedule->query()->where('id','=',$scheduleId)->update(['reservation_number'=>$courseScheduleInfo['reservation_number']+1]);
             if (!$updateSchedule){
                 DB::rollBack();
                 // 错误提示
@@ -107,7 +108,7 @@ class Course extends Api{
 	 * @param	int		$limit			每页条数,默认10条
 	 * 
 	 * */
-	public function get_list(Request $request,Model $Model,OrdersProduct $OrdersProduct){
+	public function get_list(Request $request,Model $Model,OrdersProduct $OrdersProduct,Orders $orders){
 		// 接口验签
 		// $this->verify_sign();
         // 验证参数
@@ -115,14 +116,12 @@ class Course extends Api{
 		// 检查登录
 		$uid						= $this->checkLogin();
 		// 接收参数
-		$status						= request('status',1);
+		$status						= request('status',2);
 		$limit						= request('limit',10);
 		// 显示
-		$map						= [
-                ['orders_product.custom_uid','=',$uid],
-            ];
+		$map[]						= ['orders.custom_uid','=',$uid];
 		// 查询状态
-		if( $status )				$map[] = ['orders_product.status','=',$status];
+		if( $status )				$map[] = ['orders.status','=',$status];
         $select = [
             'orders_product.id as orders_product_id',
             'orders_product.pay_total','orders_product.status',
@@ -140,7 +139,8 @@ class Course extends Api{
             'course.image',
             ];
 		// 查询订单课程
-		$Paginator					= $OrdersProduct->query()
+		$Paginator					= $orders->query()
+            ->join('orders_product','orders_product.order_id','=','orders.id')
             ->join('course','orders_product.course_id','=','course.id')
             ->where($map)
             ->whereColumn('orders_product.reservation_number','<','orders_product.course_number')

+ 35 - 19
app/Http/Controllers/Api/WechatPay.php

@@ -50,33 +50,46 @@ class WechatPay extends Api{
 	 * */
     public function notify(Custom $Custom)
     {
-        $post_data = request();
+        $content = file_get_contents("php://input");
+        if (!empty($content)) {
+            //直接json字符串
+            $params = $content;
+        } elseif (!empty($_POST)) {
+            //直接POST数据
+            $params = $_POST;
+        } else {
+            $params = [];
+        }
+        $post_data = $params;
         Log::log('notify_wechat_pay', 'post_data:' . $post_data);
         //获取headers参数
         $headers = request()->header();
         Log::log('notify_wechat_pay', '微信支付回调返回headers参数:' . json_encode($headers));
 
-        $inWechatpaySignature = $headers['wechatpay-signature'];
-        $inWechatpayTimestamp = $headers['wechatpay-timestamp'];
-        $inWechatpaySerial = $headers['wechatpay-serial'];
-        $inWechatpayNonce = $headers['wechatpay-nonce'];
+        $inWechatpaySignature = $headers['wechatpay-signature'][0];
+        $inWechatpayTimestamp = $headers['wechatpay-timestamp'][0];
+        $inWechatpaySerial = $headers['wechatpay-serial'][0];
+        $inWechatpayNonce = $headers['wechatpay-nonce'][0];
         $inBody = $post_data;
-
-        $apiv3Key = Config('wechat.APIV3');// 在商户平台上设置的APIv3密钥
+        Log::log('notify_wechat_pay', 'wechatpay-timestamp:' . $inWechatpayTimestamp);
+        $apiv3Key = Config('wechatpay.APIV3');// 在商户平台上设置的APIv3密钥
         // 根据通知的平台证书序列号,查询本地平台证书文件,
-        $platformCertificateFilePath = Config('wechat.platformCertificate');
+        $platformCertificateFilePath = Config('wechatpay.platformCertificate');
         $platformPublicKeyInstance = Rsa::from($platformCertificateFilePath, Rsa::KEY_TYPE_PUBLIC);
-
-        // 检查通知时间偏移量,允许5分钟之内的偏移
-        $timeOffsetStatus = 300 >= abs(Formatter::timestamp() - (int)$inWechatpayTimestamp);
-        Log::log('notify_wechat_pay', '时间偏移量:' . $timeOffsetStatus);
-        $verifiedStatus = Rsa::verify(
-        // 构造验签名串
-            Formatter::joinedByLineFeed($inWechatpayTimestamp, $inWechatpayNonce, $inBody),
-            $inWechatpaySignature,
-            $platformPublicKeyInstance
-        );
-        Log::log('notify_wechat_pay', '验签:' . $verifiedStatus);
+        try {
+            // 检查通知时间偏移量,允许5分钟之内的偏移
+            $timeOffsetStatus = 300 >= abs(Formatter::timestamp() - (int)$inWechatpayTimestamp);
+            Log::log('notify_wechat_pay', '时间偏移量:' . $timeOffsetStatus);
+            $verifiedStatus = Rsa::verify(
+            // 构造验签名串
+                Formatter::joinedByLineFeed($inWechatpayTimestamp, $inWechatpayNonce, $inBody),
+                $inWechatpaySignature,
+                $platformPublicKeyInstance
+            );
+        }catch (\Exception $e){
+            Log::log('notify_wechat_pay', '错误getMessage:' . $e->getMessage());
+        }
+        Log::log('notify_wechat_pay', '验签:' . $verifiedStatus.'验签inWechatpayTimestamp:' . $inWechatpayTimestamp.'验签verifiedStatus:' . $inWechatpayNonce);
         if ($timeOffsetStatus && $verifiedStatus) {
             // 转换通知的JSON文本消息为PHP Array数组
             $inBodyArray = (array)json_decode($inBody, true);
@@ -114,6 +127,9 @@ class WechatPay extends Api{
                 return json_send(['code'=>'SUCCESS']);
 
             }
+            return json_send(['code'=>'SUCCESS']);
+        }else{
+            return json_send(['code'=>'FAIL']);
         }
     }
 

+ 7 - 11
app/Models/Traits/Orders/Status.php

@@ -11,22 +11,18 @@ trait Status
 {
 
     // 交易类型  与 支付方式
-    private     $statusList        =   ['0'=>[
-                                        'id'            =>0,
-                                        'name'          =>'创建订单',// 未付款
-                                        'state'         =>'待付款', 
-                                    ],'1'=>[
+    private     $statusList        =   ['1'=>[
                                         'id'            =>1,
-                                        'name'          =>'创建订单',// 未付款,系统报单不走支付流程的状态
-                                        'state'         =>'进行中', 
+                                        'name'          =>'创建订单',// 已付款,进行上课
+                                        'state'         =>'待支付',
                                     ],'2'=>[
                                         'id'            =>2,
-                                        'name'          =>'已付款未发货',// 已付款未发货
-                                        'state'         =>'待发货',
+                                        'name'          =>'已付款待上课',// 已付款待上课
+                                        'state'         =>'待上课',
                                     ],'3'=>[
                                         'id'            =>3,
-                                        'name'          =>'已发货未收货',// 已发货未收货
-                                        'state'         =>'待收货',
+                                        'name'          =>'已上课未上完',// 已上课未上完
+                                        'state'         =>'待上课',
                                     ],'4'=>[
                                         'id'            =>4,
                                         'name'          =>'已取消',// 已取消