Просмотр исходного кода

1.优化有赞回调
2.购买商品时加入loading界面
3.美化404界面

bingo 8 лет назад
Родитель
Сommit
ce65e19337

+ 28 - 1
app/Http/Controllers/Api/YzyController.php

@@ -69,6 +69,7 @@ class YzyController extends Controller
         $json = file_get_contents('php://input');
         $data = json_decode($json, true);
         if (!$data) {
+            Log::info('YZY-POST:回调数据无法解析,可能是非法请求');
             exit();
         }
 
@@ -77,15 +78,17 @@ class YzyController extends Controller
         $sign_string = self::$config['youzan_client_id'] . "" . $msg . "" . self::$config['youzan_client_secret'];
         $sign = md5($sign_string);
         if ($sign != $data['sign']) {
+            Log::info('YZY-POST:回调数据签名错误,可能是非法请求');
             exit();
         } else {
+            // 返回请求成功标识给有赞
             var_dump(["code" => 0, "msg" => "success"]);
         }
 
         // 先写入回调日志
         $this->callbackLog($data['client_id'], $data['id'], $data['kdt_id'], $data['kdt_name'], $data['mode'], $data['msg'], $data['sendCount'], $data['sign'], $data['status'], $data['test'], $data['type'], $data['version']);
 
-        // msg内容经过 urlencode 编码,进行解码
+        // msg内容经过 urlencode 编码,进行解码
         $msg = json_decode(urldecode($msg), true);
 
         if ($data['type'] == 'TRADE_ORDER_STATE') {
@@ -103,6 +106,12 @@ class YzyController extends Controller
                 exit();
             }
 
+            // 等待支付
+            if ($data['status'] == 'WAIT_BUYER_PAY') {
+                Log::info('【有赞云】等待支付' . urldecode($data['msg']));
+                exit();
+            }
+
             // 交易成功
             if ($data['status'] == 'TRADE_SUCCESS') {
                 if ($payment->status != '0') {
@@ -114,6 +123,7 @@ class YzyController extends Controller
                 DB::beginTransaction();
                 try {
                     // 更新支付单
+                    $payment->pay_way = $msg['pay_type'] == '微信支付' ? 1 : 2; // 1-微信、2-支付宝
                     $payment->status = 1;
                     $payment->save();
 
@@ -225,6 +235,23 @@ class YzyController extends Controller
             }
         }
 
+        if ($data['type'] == 'TRADE') {
+            if ($data['status'] == 'WAIT_BUYER_PAY') {
+                Log::info('【有赞云】等待支付' . urldecode($data['msg']));
+                exit();
+            }
+
+            if ($data['status'] == 'TRADE_SUCCESS') {
+                Log::info('【有赞云】支付成功' . urldecode($data['msg']));
+                exit();
+            }
+
+            if ($data['status'] == 'TRADE_CLOSED') {
+                Log::info('【有赞云】超时未支付自动支付' . urldecode($data['msg']));
+                exit();
+            }
+        }
+
         exit();
     }
 

BIN
public/assets/images/404.gif


+ 5 - 9
resources/views/404.blade.php

@@ -34,15 +34,11 @@
 <body class="page-500-full-page">
 <div class="row">
     <div class="col-md-12 page-500">
-        <div class="number font-red"> 404 </div>
-        <div class="details">
-            <h3>{{trans('404.title')}}</h3>
-            <p> {{trans('404.tips')}} <a href="https://github.com/ssrpanel/ssrpanel/issues" target="_blank">Issues</a>
-                <br/> </p>
-            <p>
-                <a href="{{url('admin')}}" class="btn red btn-outline"> {{trans('404.back')}} </a>
-                <br> </p>
-        </div>
+        <h3>{{trans('404.title')}}</h3>
+        <p><br></p>
+        <div class="number font-red"> <img src="{{asset('assets/images/404.gif')}}" /> </div>
+        <p><br></p>
+        <a href="{{url('admin')}}" class="btn default"> {{trans('404.back')}} </a>
     </div>
 </div>
 <!--[if lt IE 9]>

+ 2 - 1
resources/views/payment/detail.blade.php

@@ -54,8 +54,9 @@
 @section('script')
     <script src="/js/layer/layer.js" type="text/javascript"></script>
     <script type="text/javascript">
+        // 每2秒查询一次订单状态
         $(document).ready(function(){
-            setInterval("getStatus()", 3000);
+            setInterval("getStatus()", 2000);
         });
 
         // 检查支付单状态

+ 23 - 0
resources/views/user/addOrder.blade.php

@@ -83,8 +83,14 @@
                 async: false,
                 data: {_token:'{{csrf_token()}}', coupon_sn:coupon_sn},
                 dataType: 'json',
+                beforeSend: function () {
+                    index = layer.load(1, {
+                        shade: [0.7,'#CCC']
+                    });
+                },
                 success: function (ret) {
                     console.log(ret);
+                    layer.close(index);
                     $("#coupon_sn").parent().removeClass("has-error");
                     $("#coupon_sn").parent().removeClass("has-success");
                     $(".input-group-addon").remove();
@@ -122,13 +128,23 @@
                 async: false,
                 data: {_token:'{{csrf_token()}}', goods_id:goods_id, coupon_sn:coupon_sn},
                 dataType: 'json',
+                beforeSend: function () {
+                    index = layer.load(1, {
+                        shade: [0.7,'#CCC']
+                    });
+                },
                 success: function (ret) {
                     layer.msg(ret.message, {time:1300}, function() {
                         if (ret.status == 'success') {
                             window.location.href = '{{url('payment')}}' + "/" + ret.data;
+                        } else {
+                            layer.close(index);
                         }
                     });
                 }
+                //complete: function () {
+                    //
+                //}
             });
         }
 
@@ -143,10 +159,17 @@
                 async: false,
                 data: {_token:'{{csrf_token()}}', goods_id:goods_id, coupon_sn:coupon_sn},
                 dataType: 'json',
+                beforeSend: function () {
+                    index = layer.load(1, {
+                        shade: [0.7,'#CCC']
+                    });
+                },
                 success: function (ret) {
                     layer.msg(ret.message, {time:1300}, function() {
                         if (ret.status == 'success') {
                             window.location.href = '{{url('user/orderList')}}';
+                        } else {
+                            layer.close(index);
                         }
                     });
                 }

+ 1 - 1
sql/db.sql

@@ -835,7 +835,7 @@ CREATE TABLE `payment` (
   `user_id` int(11) NOT NULL COMMENT '用户ID',
   `oid` int(11) DEFAULT NULL COMMENT '本地订单ID',
   `orderId` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本地订单长ID',
-  `pay_way` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1' COMMENT '支付类型:1-扫码支付',
+  `pay_way` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1' COMMENT '支付方式:1-微信、2-支付宝',
   `amount` int(11) NOT NULL DEFAULT '0' COMMENT '金额,单位分',
   `qr_id` int(11) NOT NULL DEFAULT '0' COMMENT '有赞生成的支付单ID',
   `qr_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '有赞生成的支付二维码URL',