dever 6 年之前
父节点
当前提交
a8ab613896
共有 5 个文件被更改,包括 89 次插入13 次删除
  1. 0 0
      vip/assets/mobile/css/pay.css
  2. 40 10
      vip/assets/mobile/pay.html
  3. 1 1
      vip/lib/Pay.php
  4. 43 1
      vip/src/Buy.php
  5. 5 1
      vip/template/mobile/pay.php

文件差异内容过多而无法显示
+ 0 - 0
vip/assets/mobile/css/pay.css


+ 40 - 10
vip/assets/mobile/pay.html

@@ -15,6 +15,7 @@
                 <dt>确认会员手机号</dt>
                 <dd>
                     <input type="number" id="mobile"/>
+                    <input type="hidden" id="open" value="1"/>
                 </dd>
             </dl>
             <dl>
@@ -51,17 +52,33 @@
     </div>
     <div id="pay"></div>
     <button class="button fixed-button" id="submit">确认支付</button>
+    <div class="tiplayer" style="display: none;">
+        <div class="pay-result">
+            <h3>订单信息</h3>
+            <p>VIP会员1年: <em>¥300</em></p>
+            <div class="btns">
+                <a href="#" id="unpay">未支付</a>
+                <a href="#" id="ypay">我已支付</a>
+            </div>
+        </div>
+    </div>
 <script type="text/javascript" src="js/global.js?v=099b487e"></script><script type="text/javascript" src="js/pay.js?v=099b487e"></script></body>
 <script>
-function pay(url,mobile,type)
+function pay(self, url,mobile,type)
 {
+    var html = self.html();
+    self.unbind('click');
+    self.html('支付中...');
     $.getJSON(url + '&json=1', {mobile:mobile,type:type}, function(t) {
+        self.html(html);
         if (t.status == 1) {
+            $('.tiplayer').show();
             $("#pay").html(t.data);
         } else {
+            submit();
+            $('.tiplayer').hide();
             alert(t.msg);
         }
-        
     })
 }
     $(function(){
@@ -73,6 +90,7 @@ function pay(url,mobile,type)
         $('#package').on('click','[data-package]',function(){
             $(this).addClass('active').siblings().removeClass('active');
             oPackage.price = $(this).data('price');
+            oPackage.name = $(this).data('name');
             oPackage.package = $(this).data('package');
             oPackage.url = $(this).data('url');
             $('#submit').html('确认支付¥' + oPackage.price);
@@ -81,15 +99,27 @@ function pay(url,mobile,type)
             $(this).addClass('active').siblings().removeClass('active');
             oPayType = $(this).data('type')
         })
-        $('#submit').click(function(){
-            var mobile = $("#mobile").val();
-            if(!/1\d{10}/.test(mobile)){
-                alert("手机号码不正确");
-                return;
+
+        function submit()
+        {
+            var open = $('#open').val();
+            if (open == 2) {
+                $('.tiplayer').show();
             }
-            //console.log(mobile,oPackage,oPayType)
-            pay(oPackage.url, mobile, oPayType);
-        })
+            $('#submit').unbind('click').bind('click', function(){
+                var mobile = $("#mobile").val();
+                if(!/1\d{10}/.test(mobile)){
+                    alert("手机号码不正确");
+                    return;
+                }
+                //console.log(mobile,oPackage,oPayType)
+                $('.pay-result p').html('VIP会员'+oPackage.name+': <em>¥'+oPackage.price+'</em>');
+                pay($(this), oPackage.url, mobile, oPayType);
+            })
+        }
+
+        submit();
+        
         
         $('.active').click();
     })

+ 1 - 1
vip/lib/Pay.php

@@ -33,7 +33,7 @@ class Pay
                 $update['where_id'] = $order['id'];
                 $update['status'] = 2;
 
-                Dever::db('journal/order')->update($update);
+                Dever::db('vip/order')->update($update);
 
                 if ($order['type'] != 1) {
                     return;

+ 43 - 1
vip/src/Buy.php

@@ -33,10 +33,50 @@ class Buy extends Base
         $info['download_code'] = $vip['code'];
         # 名称
         $info['name'] = '点击下载“'.$vip['name'].'”APP查看电子刊';
+
+        # 刷新当前页面
+        $info['unpay'] = $this->url('pay', array(), 'vip');
+        # 跳转至成功页面
+        $info['ypay'] = $this->url('success', array('buy' => -1, 'order_id' => -1), 'vip');
+
+        $info['buy_name'] = '';
+        $buy_id = Dever::input('buy_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['open'] = Dever::input('open', 1); 
         
         return $info;
     }
 
+    # 检测是否支付成功
+    public function checkOrder()
+    {
+        $buy_id = Dever::input('buy_id');
+        $order_id = Dever::input('order_id');
+
+        if ($order_id) {
+            $info = Dever::db('vip/order')->one($order_id);
+            if ($info) {
+                if ($info['status'] == 2) {
+                    # 已支付
+                    $url = $this->url('success', array('buy_id' => $buy_id, 'order_id' => $order_id), 'vip');
+                    Dever::location($url);
+                    return;
+                }
+            }
+        }
+        # 未支付
+        $url = $this->url('pay', array('buy_id' => $buy_id, 'open' => 2), 'vip');
+        Dever::location($url);
+
+    }
+
     # 购买页
     public function buy()
     {
@@ -46,6 +86,7 @@ class Buy extends Base
             $i = 0;
             foreach ($data as $k => $v) {
 
+                $data[$k]['title'] = $data[$k]['name'];
                 $data[$k]['price'] = '<i>¥</i><b>'.$v['cash'].'</b><em>¥' . $v['price'] . '</em>';
 
                 if ($v['type'] == 2) {
@@ -129,7 +170,8 @@ class Buy extends Base
         }
 
         //$param参数
-        $refer = $this->url('success', array('buy' => $buy_id, 'order_id' => $id), 'vip');
+        //$refer = $this->url('success', array('buy_id' => $buy_id, 'order_id' => $id), 'vip');
+        $refer = $this->url('data.checkOrder', array('buy_id' => $buy_id, 'order_id' => $id), 'vip');
         $param = array
         (
             'account_id' => 2,

+ 5 - 1
vip/template/mobile/pay.php

@@ -7,7 +7,10 @@ $view
 ->import('inc/head')
 
 ->fetch('#mobile@value', 'vip/buy.info#mobile')
-
+->fetch('#unpay@href', 'vip/buy.info#unpay')
+->fetch('#ypay@href', 'vip/buy.info#ypay')
+->fetch('#open@value', 'vip/buy.info#open')
+->fetch('.pay-result p', 'vip/buy.info#buy_name')
 # 循环
 ->loop
 (
@@ -21,6 +24,7 @@ $view
         'self' => array
         (
             'class' => 'time-option <{$v.active}>',
+            'data-name' => '$v.title',
             'data-price' => '$v.cash_str',
             'data-package' => '$v.id',
             'data-url' => '$v.pay_url',

部分文件因为文件数量过多而无法显示