dever 6 years ago
parent
commit
9224d4a64c
4 changed files with 50 additions and 9 deletions
  1. 14 0
      vip/assets/mobile/pay.html
  2. 17 6
      vip/src/Api.php
  3. 16 3
      vip/src/Buy.php
  4. 3 0
      vip/template/mobile/pay.php

+ 14 - 0
vip/assets/mobile/pay.html

@@ -105,6 +105,20 @@ function pay(self, url,mobile,type)
             var open = $('#open').val();
             if (open == 2) {
                 $('.tiplayer').show();
+                //实时检测是否支付成功
+                /*
+                setInterval(function()
+                {
+                    var url = $('#open').attr('data-url');
+                    var order_id = $('#open').attr('data-order_id');
+                    var buy_id = $('#open').attr('data-buy_id');
+                    $.getJSON(url + '&json=1', {order_id:order_id,buy_id:buy_id}, function(t) {
+                        if (t.data == 1) {
+                            location.href = $('#ypay').attr('href');
+                        }
+                    })
+                }, 1000);
+                */
             }
             $('#submit').unbind('click').bind('click', function(){
                 var mobile = $("#mobile").val();

+ 17 - 6
vip/src/Api.php

@@ -7,6 +7,21 @@ class Api extends Base
 {
     # 检测是否支付成功
     public function checkOrder()
+    {
+    	$buy_id = Dever::input('buy_id');
+        $order_id = Dever::input('order_id');
+
+    	$state = $this->check();
+    	if ($state == 1) {
+    		$url = $this->url('success', array('buy_id' => $buy_id, 'order_id' => $order_id), 'vip');
+            Dever::location($url);
+    	} else {
+    		$url = $this->url('pay', array('buy_id' => $buy_id, 'order_id' => $order_id, 'open' => 2), 'vip');
+        	Dever::location($url);
+    	}
+    }
+
+    public function check()
     {
         $buy_id = Dever::input('buy_id');
         $order_id = Dever::input('order_id');
@@ -16,15 +31,11 @@ class Api extends Base
             if ($info) {
                 if ($info['status'] == 2) {
                     # 已支付
-                    $url = $this->url('success', array('buy_id' => $buy_id, 'order_id' => $order_id), 'vip');
-                    Dever::location($url);
-                    return;
+                    return 1;
                 }
             }
         }
         # 未支付
-        $url = $this->url('pay', array('buy_id' => $buy_id, 'open' => 2), 'vip');
-        Dever::location($url);
-
+        return 2;
     }
 }

+ 16 - 3
vip/src/Buy.php

@@ -37,15 +37,28 @@ class Buy extends Base
         # 刷新当前页面
         $info['unpay'] = $this->url('pay', array(), 'vip');
         # 跳转至成功页面
-        $info['ypay'] = $this->url('success', array('buy' => -1, 'order_id' => -1), 'vip');
+        if ($this->source_type == 'android') {
+
+        } elseif ($this->source_type == 'ios') {
+
+        } else {
+            $info['ypay'] = $this->url('success', array('buy' => -1, 'order_id' => -1), 'vip');
+        }
 
         $info['buy_name'] = '';
+        $info['buy_url'] = '';
+        $info['buy_id'] = '';
+        $info['order_id'] = '';
         $buy_id = Dever::input('buy_id');
+        $order_id = Dever::input('order_id');
         if ($buy_id) {
             $buy = Dever::db('vip/time')->one($buy_id);
             if ($buy) {
                 $info['buy_name'] = 'VIP会员' . $buy['name'] . ': <em>¥'.$buy['price'].'</em>';
-            } 
+                $info['buy_url'] = $this->url('api.check', array('buy_id' => $buy_id, 'order_id' => $order_id), 'vip');
+                $info['buy_id'] = $buy_id;
+                $info['order_id'] = $order_id;
+            }
         }
     
         # 是否显示弹窗
@@ -53,7 +66,7 @@ class Buy extends Base
         
         return $info;
     }
-    
+
     # 购买页
     public function buy()
     {

+ 3 - 0
vip/template/mobile/pay.php

@@ -10,6 +10,9 @@ $view
 ->fetch('#unpay@href', 'vip/buy.info#unpay')
 ->fetch('#ypay@href', 'vip/buy.info#ypay')
 ->fetch('#open@value', 'vip/buy.info#open')
+->fetch('#open@data-url', 'vip/buy.info#buy_url')
+->fetch('#open@data-buy_id', 'vip/buy.info#buy_id')
+->fetch('#open@data-order_id', 'vip/buy.info#order_id')
 ->fetch('.pay-result p', 'vip/buy.info#buy_name')
 # 循环
 ->loop