欧类av怡春院_久久久久成人网站_亚洲国产一区在线_免费在线观看污_97热在线精品视频在线观看_久久久久久色_涩涩涩999_免费不卡欧美自拍视频_亚洲精品国产无天堂网2021_中文字幕av专区_欧美成va人片在线观看_精品视频第一页


待發短信

在線客服
產品支持 短信寶客服
合作渠道 渠道合作
服務咨詢

4001-021-502

工作時間

9:00-21:00

Tipask問答系統新增短信寶短信接口

Tipask是一款100%開放源碼的PHP問答系統,基于Laravel5.6 LTS 版本開發,容易擴展,具有強大的負載能力和穩定性。今天小編就以替換短信接口為例一步一步教大家如何開發,進行替換的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信接口非常穩定,發送速度快,注冊還送測試短信,推薦大家使用。

首先我們打開項目\resources\views\themes\default\account\forgetPassword.blade.php文件替換30~58行左右的代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
            @if(Setting()->get('mobile_trun') == 1)
                <div class="form-group">
                    <label class="required">選擇找回密碼方式</label>
                    <div class="radio">
   <label><input type="radio" name="emamobile" class="emamobile" value="1" checked="">郵箱</label>
  <label><input type="radio" name="emamobile" class="emamobile" value="0">短信</label>
                    </div>      </div>
                <div class="form-group mobile @if($errors->first('mobile')) has-error @endif" style="display: none;">
                    <label class="required">手機</label>
  <input type="text" id="mobile" class="form-control" name="mobile" placeholder="注冊手機" value="{{old('mobile')}}">
 @if ($errors->first('mobile')) <span class="help-block">{{$errors->first('mobile')}}</span>   @endif
  </div> <div class="form-group mobile @if($errors->first('mobile_code')) has-error @endif" style="display: none;">
                    <label for="mobile_code" class="required">短信驗證碼</label>
                    <div class="col-md-12" style="padding-left: 0;">
                        <div class="col-md-8" style="padding-left: 0;">
    <input type="text" class="form-control" name="mobile_code" id="mobile_code" placeholder="請輸入短信驗證碼">
     </div> <b class="btn btn-primary" id="btn-code" style="margin-bottom: 15px;">獲取驗證碼</b>
                        @if ($errors->first('mobile_code'))
                            <span class="help-block">{{$errors->first('mobile_code')}}</span>
                        @endif
                    </div>
                </div>
            @endif
                <div class="form-group email @if ($errors->first('email')) has-error @endif">

接著我們添加獲取短信驗證碼的js代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
@section('js')
    <script type="text/javascript">
        $('.emamobile').on('click',function(){
            var $this = $(this).val();
            if ($this == '0') {
                $('.mobile').css('display','block');
                $('.email').css('display','none');
            }else{
                $('.email').css('display','block');
                $('.mobile').css('display','none');
            }
        })
    </script>
    <script type="text/javascript">
        var time = 0; //倒計時時間
        var res = null//倒計時資源,釋放時使用
        var sendNode = null//發送的按鈕節點
 
        function sendTime(){
            clearTimeout(res);
            time--;
 
            if (time <= 0) {
                time = "獲取驗證碼";
                sendNode.text(time);
                clearTimeout(res);
                time = 0;
                return;
            }
 
            sendNode.text("剩余"+time+"秒");
            res = setTimeout("sendTime()",1000);
        }
 
        $(function(){
            sendNode = $("#btn-code");
            var flg = true;
 
            sendNode.click(function(){
                if (time == 0) {
                    var mobile = $('#mobile').val();
                    var reg = /^1[3,4,5,7,8]\d{9}$/;
                    var ret = false;
                    if (!reg.test(mobile)) {
                        alert('手機號碼不正確!');
                        return ret;
                    }
 
                    if ({{Setting()->get('code_register')}} == 1) {
                        var code = $("#captcha").val();
                        if (code == '') {
                            alert('請輸入驗證碼');
                            return ret;
                        }
                        var data = {"captcha":code,"mobile":mobile};
 
                    }else{
                       var data = {"mobile":mobile};
                    }
                    var err ="";
                    if (flg == true) {
                        flg = false;
                        $.ajax({
                            type:"POST",
                            url:"{{ route('auth.user.forget_mobile_code') }}",
                            dataType:"html",
                            async:false,
                            data:data,
                            success:function(data){
                                if (data == 'ok') {
                                    time = 60;
                                    sendTime();
                                    alert('短信發送成功');
                                    flg = true;
                                }else if(data == '-1'){
                                    alert('手機號不存在');
                                }else{
                                    alert('短信發送失敗'+data);
                                }
                            },
                            error:function(data){
                                var errors = unescape(data['responseText'].replace(/\\/g,"%"));
                                var error = JSON.parse(errors);
                                if (error['captcha'] != ''&&error['captcha']) {
                                    alert(error['captcha']);
                                    return false;
                                }
 
                                if (error['mobile'] != '' && error['mobile']) {
                                    alert(error['mobile']);
                                    return false;
                                }
                            }
                        })
                    }
                }
            })
        })
    </script>
@endsection

接著我們打開項目\resources\views\themes\default\account\register.blade.php文件,在33~53行左右添加以下代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
      @if(Setting()->get('mobile_trun') == 1)
                <div class="form-group @if ($errors->first('mobile')) has-error @endif">
                    <label for="mobile" class="required">Mobile(手機)</label>
  <input type="text" class="form-control" id="mobile" name="mobile" required="" placeholder="請輸入手機">
                    @if ($errors->first('mobile'))
                        <span class="help-block">{{ $errors->first('mobile') }}</span>
                    @endif
                </div>
                <div class="form-group @if($errors->first('mobile_code')) has-error @endif">
                    <label for="mobile_code" class="required">短信驗證碼</label>
                    <div class="col-md-12" style="padding-left: 0;">
                        <div class="col-md-8" style="padding-left: 0;">
           <input type="text" class="form-control" name="mobile_code" id="mobile_code" required="" placeholder="請輸入短信驗證碼">
                        </div>    
                    <b class="btn btn-primary" id="btn-code" style="margin-bottom: 15px;">獲取驗證碼</b>
                    @if ($errors->first('mobile_code'))
                        <span class="help-block">{{ $errors->first('mobile_code') }}</span>
                    @endif
                    </div>
                </div>
            @endif
           

接著添加js代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
@section('js')
    <script> 
        var time = 0;
        var res = null;
        function sendTime(){
            clearTimeout(res); 
            time --;
 
            if (time <= 0) {
                time = "獲取驗證碼";
                $('#btn-code').text(time);
                clearTimeout(res);
                time = 0;
                return;
            }
 
            $('#btn-code').text("剩余"+time+"秒");
            res = setTimeout("sendTime()",1000);
        }
 
        $(function(){
            var flg = true;
            $('#btn-code').on('click',function(){
                var mobile = $('#mobile').val();
                var reg = /^1[3,4,5,7,8]\d{9}$/;
                var ret = false;
                if (!reg.test(mobile)) {
                    alert('手機號碼不正確!');
                    return ret;
                }
                if ({{Setting()->get('code_register')}} == 1) {
                    var code = $("#captcha").val();
                    if (code == '') {
                        alert('請輸入驗證碼');
                        return ret;
                    }
                    var data = {"captcha":code,"mobile":mobile};
 
                }else{
                   var data = {"mobile":mobile};
                }
                var err ="";
                if (flg == true) {
                    flg = false;
                    $.ajax({
                        type:"POST",
                        url: "{{ route('auth.user.mobile_code') }}",
                        dataType : "html",
                        async : false,
                        data : data,
                        success:function(data){
                            if (data == "ok") {
                                time = 60;
                                sendTime();
                                alert('短信發送成功');
                                flg = true;
                            }else{
                                alert('短信發送失敗請聯系管理員。');
                                flg = true;
                            }
                        },
                        error:function(data){
                            var errors = unescape(data['responseText'].replace(/\\/g, "%"));
                            var error = JSON.parse(errors);
                            if(error['mobile'] != ''&&error['mobile'] ){
                                alert(error['mobile']);
                                return false;
                            }
                            if (error['captcha']&&error['captcha']!='') {
                                alert(error['captcha']);
                                return false;
                            }
 
                        }
                    });
                }
                return flg;
            })
 
        })
 
    </script>
@endsection

添加完成之后,我們在打開\resources\views\admin\public\menu.blade.php文件,在13行左右添加以下代碼:

?
1
<li><a href="{{ route('admin.setting.mobile') }}"><i class="fa fa-circle-o"></i> 短信設置</a></li>

然后我們打開項目\resources\views\admin\setting\irrigation.blade.php文件,在71行左右添加以下代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            <h3 class="box-title">短信策略</h3>
                        </div>
                        <div class="box-body">
                            <div class="form-group">
                                <label for="website_url">開啟</label>
                                <span class="text-muted">(開啟后必須使用短信進行驗證)</span>
                                <div class="radio">
  <label><input type="radio" name="mobile_trun" value="1" @if(Setting()->get('mobile_trun') == 1) checked @endif>開啟</label>
    <label><input type="radio" name="mobile_trun" value="0" @if(Setting()->get('mobile_trun') == 0) checked @endif>關閉</label>
                                </div>                            </div>
                        </div>
                    </div>
                    <div class="box box-default">
                        <div class="box-header with-border">

接著我們在項目\resources\views\admin\setting\下創建mobile.blade.php文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
@extends('admin/public/layout')
@section('title')短信配置@endsection
@section('content')
    <section class="content-header">
        <h1>短信配置</h1>
    </section>
    <section class="content">
     <div class="row">
        <div class="col-xs-12">
          <div class="box box-primary">
             <form role="form" name="settingForm" method="POST" action="{{ route('admin.setting.mobile') }}">
               <input type="hidden" name="_token" value="{{ csrf_token() }}">
                 <div class="box-body">
                   <div class="form-group @if ($errors->has('smsbao_user')) has-error @endif">
  <label for="smsbao_user">短信寶用戶名</label>
    <span class="text-muted">(還沒有短信寶帳號?<a href="http://www.fyzp06.cn/">注冊</a>)</span>
    <input type="text" name="smsbao_user" class="form-control " placeholder="短信寶用戶名" value="{{ old('smsbao_user',Setting()->get('smsbao_user')) }}">
      @if ($errors->has('smsbao_user')) <p class="help-block">{{ $errors->first('smsbao_user') }}</p> @endif
       </div>  <div class="form-group @if ($errors->has('smsbao_pass')) has-error @endif">   <label for="smsbao_pass">短信寶密碼</label>
      <span class="text-muted">(請輸入短信寶密碼)</span>
      <input type="password" name="smsbao_pass" class="form-control " placeholder="短信寶密碼" value="{{ old('smsbao_pass',Setting()->get('smsbao_pass')) }}">
      @if ($errors->has('smsbao_pass')) <p class="help-block">{{ $errors->first('smsbao_pass') }}</p> @endif
      </div> <div class="form-group  @if ($errors->has('smsbao_sign')) has-error @endif">
     <label for="smsbao_sign">短信寶簽名</label>        <span class="text-muted">(請輸入短信寶簽名)</span>
     <input type="text" name="smsbao_sign" class="form-control " placeholder="短信寶簽名" value="{{ old('smsbao_sign',Setting()->get('smsbao_sign')) }}">
    @if ($errors->has('smsbao_sign')) <p class="help-block">{{ $errors->first('smsbao_sign') }}</p> @endif
     </div>  </div>      <div class="box-footer">
                            <button type="submit"  class="btn btn-primary">保存</button>
                            <button type="button" class="btn btn-success" id="btn_test_mobile" >發送測試短信</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </section>
@endsection
@section('script')
    <div class="modal fade" id="test_mobile_model"  role="dialog">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="exampleModalLabel">發送測試短信</h4>
                </div>
                <div class="modal-body">
                    <form name="messageForm" id="message_form">
                        <div class="form-group">
                            <label for="to_user_id" class="control-label">接收人手機號:</label>
                            <input type="mobile" class="form-control" id="test_send_to" name="sendTo" value="" placeholder="接收人手機號" />
                        </div>
                        <div class="form-group">
                            <label for="message-text" class="control-label">內容:</label>
                            <textarea class="form-control" id="test_mobile_content" name="content">你好,這是一條測試短信。收到短信則短信接口正常使用!</textarea>
                        </div>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                    <button type="button" class="btn btn-primary" id="submit_test_mobile">發送</button>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript">    
        $(function(){
            set_active_menu('global',"{{ route('admin.setting.mobile') }}");
            $("#btn_test_mobile").click(function(){
                if(confirm('請確認短信配置項已保存成功?')){
                    $("#test_mobile_model").modal('show');
                }
            });
            /*發送測試郵件*/
            $("#submit_test_mobile").click(function(){
                var sendTo = $("#test_send_to").val();
                var content = $("#test_mobile_content").val();
                $.post('{{ route('admin.tool.sendTestMobile') }}',{sendTo:sendTo,content:content},function(msg){
                    console.log(msg);
                    if(msg == 'ok'){
                        alert('短信發送成功');
                    }else{
                        alert('短信發送錯誤:'+ msg );
                    }
                    $("#test_mobile_model").modal('hide');
                });
            });
 
        });
    </script>
@endsection

打開項目\app\Http\routes.php文件在49行左右添加以下代碼:

?
1
2
  Route::match(['get','post'],'mobile_code',['as'=>'auth.user.mobile_code','uses'=>'UserController@mobile_code']);
    Route::match(['get','post'],'forget_mobile_code',['as'=>'auth.user.forget_mobile_code','uses'=>'UserController@forget_mobile_code']);

在315行左右添加短信設置代碼,406行左右工具管理處添加第二行代碼:

?
1
2
3
4
5
/*短信設置*/
    Route::any('setting/mobile',['as'=>'admin.setting.mobile','uses'=>'SettingController@mobile']);
 
 Route::post('tool/sendTestMobile',['as'=>'admin.tool.sendTestMobile','uses'=>'ToolController@sendTestMobile']);
 

添加完成之后打開項目\app\Http\Controllers\Controller.php文件,添加sendSms短信發送方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    /*短信發送*/
    protected function sendSms($mobile,$content)
    {
        $user = Setting()->get('smsbao_user');
        $pass = Setting()->get('smsbao_pass');
        $sign = Setting()->get('smsbao_sign');
 
        if (empty($user) || empty($pass) || empty($sign) ) {
            return '11';
        }
        $url 'http://api.smsbao.com/sms?u='.$user.'&p='.md5($pass).'&m='.$mobile.'&c=【'.$sign.'】'.$content;
        $ret file_get_contents($url);
        if ($ret == 0) {
            return 'ok';
        }else{
            return $ret;
        }
    }

接著打開項目\app\Http\Controllers\Account\UserController.php文件,在108行左右添加驗證短信驗證碼代碼:

?
1
2
3
4
5
6
7
8
9
10
       if (Setting()->get('mobile_trun') == 1) {
               $validateRules['mobile'] = 'required|regex:/^1[3,4,5,7,8]\d{9}$/|unique:users';
               if (empty(session('mobile_code')) || $request->mobile_code != session('mobile_code')) {
                    return redirect(route('auth.user.register'))
                        ->withInput($request->only('mobile_code'))
                        ->withErrors([
                            'mobile_code' => '短信驗證碼錯誤!',
                        ]);
               }
            }

接著在158行左右添加mobile_codeforget_mobile_code方法,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 public function mobile_code(Request $request)
    {
            if( Setting()->get('code_register') == 1){
                $validateRules['captcha'] = 'required|captcha';
            }
            $validateRules['mobile'] = 'required|regex:/^1[3,4,5,7,8]\d{9}$/|unique:users';
            
            $this->validate($request,$validateRules);
            $code = rand(10000,99999);
            session(['mobile_code'=>$code]);
            $content '您好,您的驗證碼為:'.$code.',請妥善保存。';
            $ret =  $this->sendSms($request->mobile,$content);
 
            if ($ret == 'ok') {
                return 'ok';
            }else{
                return json_encode($ret);
            }
    }
 
    public function forget_mobile_code(Request $request)
    {
        if( Setting()->get('code_register') == 1){
            $validateRules['captcha'] = 'required|captcha';
        }
 
         $user = User::where('mobile','=',$request->mobile)->first();
 
         if (empty($user)) {
             return json_encode('-1');
         }
 
         $code = rand(10000,99999);
         session(['mobile_code'=>$code]);
         session(['forget_mobile'=>$request->mobile]);
         $content '您好,您正在進行找回密碼操作,驗證碼為:'.$code.',請妥善保存!';
         $ret $this->sendSms($request->mobile,$content);
         if ($ret == 'ok') {
             return 'ok';
         }else{
            return json_encode($ret);
         }
    }

添加完成之后再去修改forgetPassword方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*忘記密碼*/
    public function forgetPassword(Request $request)
    {
 
        if($request->isMethod('post'))
        {   
            if (Setting()->get('mobile_trun') == 1) {
                if (empty(session('mobile_code')) || $request->mobile_code != session('mobile_code')) {
                    return redirect(route('auth.user.forgetPassword'))
                        ->withInput($request->only('mobile_code'))
                        ->withErrors([
                            'mobile_code' => '短信驗證碼錯誤!',
                        ]);
               }
            if (empty(session('forget_mobile')) || $request->mobile != session('forget_mobile')) {
                   return redirect(route('auth.user.forgetPassword'))->withInput($request->only('forget_mobile'))
                   ->withErrors(['forget_mobile'=>'手機號不正確']);
               }   
            $content '您好,您正在進行找回密碼操作,新的密碼為:123456,請您盡快修改密碼';
            $ret $this->sendSms($request->mobile,$content);
            if ($ret == 'ok') {
                $data['password'] = bcrypt('123456');
                User::where('mobile','=',$request->mobile)->update($data);
            return  $this->success(route('auth.user.login'),'密碼修改成功,請重新登錄');;
            }else{
               return  redirect(route('auth.user.login'))
                ->withInput($request->only('mobile'))
                ->withErrors([
                    'mobile' => '錯誤',
                ]);
            }
 
            }
            $request->flashOnly('email');
            /*表單數據校驗*/
            $this->validate($request, [
                // 'email' => 'required|email|exists:users',
                'captcha' => 'required|captcha'
            ]);
 
            $emailToken = EmailToken::create([
                'email' =>  $request->input('email'),
                'token' => EmailToken::createToken(),
                'action'=> 'findPassword'
            ]);
            if($emailToken){
                $subject = Setting()->get('website_name').' 找回密碼通知';
                $content "如果您在 ".Setting()->get('website_name')."的密碼丟失,請點擊下方鏈接找回 → ".route('auth.user.findPassword',['token'=>$emailToken->token])."<br />如非本人操作,請忽略此郵件!";
                $this->sendEmail($emailToken->email,$subject,$content);
            }
            return view("theme::account.forgetPassword")->with('success','ok')->with('email',$request->input('email'));
 
        }
 
        return view("theme::account.forgetPassword");
 
    }

然后我們打開項目\app\Http\Controllers\Admin\SettingController.php文件,添加短信配置方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 /*短信配置*/
    public function mobile(Request $request)
    {
        if ($request->isMethod('post')) {
            $data $request->except('_token');
            unset($data['_token']);
            foreach ($data as $name => $value) {
                $_ENV[strtoupper($name)] = $value;
                Setting()->set($name,$value);
            }
            Setting()->clearAll();
            Setting()->writeToEnv();
            return $this->success(route('admin.setting.mobile'),'短信配置保存成功');
        }
        return view('admin.setting.mobile');
    }

接著我們在項目\app\Http\Controllers\Admin\ToolController.php文件中添加sendTestMobile方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public function sendTestMobile(Request $request)
    {
        $validateRules = [
            'sendTo' => 'required|regex:/^1[3,4,5,7,8]\d{9}$/',
            'content' => 'required|max:255',
        ];
        $this->validate($request,$validateRules);
        $user = Setting()->get('smsbao_user');
        $pass = Setting()->get('smsbao_pass');
        if (empty($user) && empty($pass)) {
            return '請填寫短信寶用戶名和密碼。';
        }
        $url 'http://api.smsbao.com/sms?u='.$user.'&p='.md5($pass).'&m='.$request->sendTo.'&c='.$request->content;
        $ret file_get_contents($url);
        if ($ret == 0) {
            return 'ok';
        }else{
            return $ret;
        }
    }

接著打開項目\app\Models\User.php文件,將36行代碼修改為以下代碼:

?
1
 protected $fillable = ['name''email''password','status','mobile','site_notifications','email_notifications',''];

最后打開項目\app\Services\Registrar.php文件,修改create方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 public function create(array $data)
    {
        $user =  User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'mobile' => $data['mobile'],
            'status' => $data['status'],
            'site_notifications' => 'follow_user,invite_answer,comment_question,comment_article,adopt_answer,comment_answer,reply_comment',
            'email_notifications' => 'adopt_answer,invite_answer'
        ]);
 
        if($user){
            UserData::create([
                'user_id' => $user->id,
                'coins' => 0,
                'credits' => 20,
                'registered_at' => Carbon::now(),
                'last_visit' => Carbon::now(),
                'last_login_ip' => $data['visit_ip'],
            ]);
        }
 
        return $user;
    }

好了,經過以上的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。我們進行測試發送。

報備一下短信寶的VIP模板,這樣就可以走短信寶的優質通道了,即便遇到敏感文字我們都不會人工審核,短信內容3~5秒就可送達。

另外:我們已經開發好完整的Tipask問答系統短信寶插件,點擊此鏈接 下載及查看安裝流程。

開源插件

最新更新

電商類

CMS類

微信類

文章標簽
91精品国产综合久久香蕉的用户体验| 无码人妻aⅴ一区二区三区69岛| 日韩在线综合网| 国产免费内射又粗又爽密桃视频| 亚洲日本无吗高清不卡| 亚洲成人a**址| 成人精品视频久久久久| 国产精品一区二区a| 国产精品久久视频| 日本久久久久久久| 欧美亚洲国产视频| 91精品天堂| 欧美在线日韩精品| 欧美国产综合在线| 中文精品视频一区二区在线观看| 国产综合动作在线观看| 成人18视频| 热re99久久精品国产99热| 国产小视频免费| 日本福利视频在线观看| 欧美性猛交久久久乱大交小说| 播放灌醉水嫩大学生国内精品| xxx国产在线观看| 国产男女猛烈无遮挡a片漫画 | 国产精品一区在线观看| 亚洲成年人专区| 视色视频在线观看| 四季av中文字幕| 国产免费a视频| 国产一区二区小视频| 九九**精品视频免费播放| 国产一区二区免费在线| 国产二区国产一区在线观看| 国产精品伦理在线| 欧美视频自拍偷拍| 日韩电影中文字幕一区| 88国产精品欧美一区二区三区| 性欧美办公室18xxxxhd| 欧美专区在线播放| 日韩理论片在线观看| 久久免费视频2| 久久久国内精品| 岛国av免费观看| 欧美人禽zoz0强交| av免费观看在线| 黑人精品欧美一区二区蜜桃| 欧美激情一区在线观看| 在线中文字幕一区二区| 亚洲欧美日韩直播| 国产精品一二三在线| 欧美成熟毛茸茸复古| 黄色影院一级片| 九九热免费在线| 国产精品自拍电影| 97成人超碰视| 欧美日韩亚洲国产一区| 日韩在线免费观看视频| 亚洲精品欧美日韩专区| 91av资源网| brazzers精品成人一区| 91极品身材尤物theporn| 国产v日产∨综合v精品视频| 午夜精品影院在线观看| 亚洲电影中文字幕| 亚洲专区国产精品| 亚洲精品午夜在线观看| 国产精品第72页| 麻豆精品新av中文字幕| 亚洲一区二区综合| 亚洲欧美中文在线视频| 国产成人高清激情视频在线观看| 鲁鲁狠狠狠7777一区二区| 能在线观看的av网站| 精品女人久久久| 国产一区二区久久| 91精品福利在线一区二区三区 | 欧美日韩精品一区二区天天拍小说| 欧美成人久久久| 久久久久久久久久久久久国产精品| 欧美又粗又长又爽做受| 蜜桃精品成人影片| 亚洲天堂视频网| 亚洲欧美国产三级| 中文字幕久热精品视频在线| 欧美污视频久久久| av最新在线观看| 久久99国产精品免费| 在线观看亚洲a| 国内精品小视频| 久草在在线视频| www欧美在线| 国产精品欧美极品| 美女啪啪无遮挡免费久久网站| 日本高清一区| 美女视频久久久| 2020国产精品自拍| 日韩在线免费av| 日韩欧美一区三区| 一起草av在线| 色哟哟国产精品| 国产99在线播放| 久久午夜夜伦鲁鲁片| 奇米色777欧美一区二区| 色哟哟亚洲精品| 91网免费观看| 国产人妻一区二区| 三级欧美在线一区| 精品电影一区二区| 精品一区久久久| 国产老熟女伦老熟妇露脸| 精久久久久久久久久久| 在线播放一区二区三区| 91久久国产综合久久蜜月精品 | 国产suv精品一区二区三区| 在线看国产精品| 88av.com| 蜜桃在线一区二区三区| 日韩精品视频在线播放| 久久av高潮av| 免费在线观看av的网站| 在线这里只有精品| 欧美性xxxx69| 无码人妻精品一区二区三区蜜桃91| 久久精品一级爱片| 国产三级精品网站| 国产视频一区二区三区在线播放 | 亚洲欧洲av另类| 国产精品欧美日韩久久| 精品人妻一区二区三区蜜桃视频| 九九久久精品视频| 久久久久久国产精品三级玉女聊斋| 欧美性猛交xxx乱久交| 蜜桃av一区二区| 亚洲天堂网站在线观看视频| 免费看污污网站| 日韩电影在线观看电影| 亚洲天堂开心观看| 黄色片视频在线播放| 经典三级在线一区| 欧美极品美女电影一区| 美女久久久久久久久久| 亚洲精品欧美激情| 国产日韩三区| 日韩欧美一级大片| 欧美欧美午夜aⅴ在线观看| 亚洲精品中文字幕乱码三区不卡| 91亚洲精品国偷拍自产在线观看| 精品国产第一区二区三区观看体验| 亚洲av综合色区| 成人福利小视频| 亚洲欧美www| 中文字幕亚洲乱码| 久久精品人人做人人爽97| 国产精华一区| 亚洲av无码国产精品久久不卡 | 日本女人性视频| 亚洲美女视频在线观看| 精品不卡一区二区三区| 亚洲精品网站在线| 性欧美办公室18xxxxhd| 日本va欧美va国产激情| 亚洲第一av在线| 漂亮人妻被黑人久久精品| 亚洲另类色综合网站| 成人在线免费观看网址| 美日韩一级片在线观看| 国产一区二区在线免费视频| fc2ppv在线播放| 欧美精品在线观看播放| 亚洲xxxx2d动漫1| 国产精品美日韩| 日韩动漫在线观看| 国模私拍视频在线| 日韩精品一区二区三区swag | 亚洲欧美日本国产有色| 国产电影一区在线| 欧美激情视频一区二区三区| 美女视频一区二区三区| 日本精品久久久久影院| 国产精品19乱码一区二区三区| 亚洲精品视频久久| 精品人体无码一区二区三区| 欧美卡1卡2卡| 精品人妻少妇嫩草av无码| 性做久久久久久久免费看| 激情五月亚洲色图| 国产精品国产自产拍高清av王其 | 国语精品中文字幕| 国产富婆一级全黄大片| 国产成人激情视频| 国内精品偷拍视频| 97人人做人人爱| 国内老熟妇对白xxxxhd| 欧美在线视频观看免费网站| www男人的天堂| 91精品国产电影| 色婷婷在线视频| 国产欧美日韩中文字幕| 麻豆一区二区三| 亚洲精品久久久久久一区二区| 久久97超碰国产精品超碰| 视频一区二区在线| 亚洲天堂免费在线观看视频| 国产天堂视频在线观看| 午夜私人影院久久久久| 两性午夜免费视频| 精品国产免费视频| 中文字幕第15页| 欧美激情一区二区三区成人 | 不卡中文字幕av| av一级在线观看| 国产欧美日韩专区发布| 高清日韩电视剧大全免费| 欧美日本韩国在线| 97se狠狠狠综合亚洲狠狠| 男人天堂网视频| 欧美三级三级三级| 亚洲精品成人无码| 亚洲欧洲国产一区| 久草视频精品在线| 91禁国产网站| 国产精品一区二区久激情瑜伽 | 劲爆欧美第一页| 欧美日本国产在线| 99久久精品免费看国产交换| 国产一区二区三区四区五区在线 | 国产精品久久久久久影视| 精品一区二区三区影院在线午夜| 亚洲高清不卡一区| 中文字幕日本乱码精品影院| 人妻少妇被粗大爽9797pw| 色婷婷av一区二区三区大白胸| 久久一级免费视频| 国产成人黄色av| 久久丝袜美腿综合| 日韩在线一区视频| 在线午夜精品自拍| 手机看片一区二区三区| 少妇熟女一区二区| 色美美综合视频| 探花视频在线观看| 国产精品久久7| 亚洲成人av一区二区三区| 亚洲自拍偷拍一区二区| 日韩视频免费在线观看| av av片在线看| 日韩久久久久久久久久久久| 91福利国产成人精品照片| 五月天婷婷久久| 国产一区免费观看| 亚洲精品久久久蜜桃| 免费毛片在线播放免费| 国产精品制服诱惑| 中文字幕五月欧美| 波多野结衣亚洲色图| 精品国产一区二区三区麻豆小说 | 99re6这里只有精品视频在线观看| 五月激情婷婷在线| 九九久久精品一区| 91丝袜高跟美女视频| 播金莲一级淫片aaaaaaa| 4p变态网欧美系列| 中文字幕av一区二区三区高| 性欧美videos| 超碰97人人人人人蜜桃| 一本色道久久综合狠狠躁的推荐| 538精品在线观看| 欧美精品一区在线发布| 欧美中文字幕一区二区三区亚洲| 亚洲视频在线免费播放| 性欧美大战久久久久久久| 亚洲性夜色噜噜噜7777| 国产91丝袜在线18| 国产三级在线观看完整版| 精品一区二区三区日本| 欧美性猛交xxxx黑人交| 天天操天天舔天天干| 婷婷激情综合五月天| 国产精品久久视频| 亚洲狠狠丁香婷婷综合久久久| 99久久人妻无码中文字幕系列| 97精品久久久中文字幕免费| 亚洲日本电影在线| 久久免费黄色网址| 97av中文字幕| 久久精品视频在线播放| 不卡av在线网| 欧美日韩中文字幕在线观看| 亚洲一区精彩视频| 一区二区欧美亚洲| 欧美经典一区二区| 中文字幕人妻丝袜乱一区三区| 久久黄色免费看| 国产精品日韩av| 欧美一区欧美二区| 美国欧美日韩国产在线播放| 大黑人交xxx极品hd| 亚洲免费在线精品一区| 欧美老肥婆性猛交视频| 亚洲欧洲av另类| 成人乱码一区二区三区| 日韩 中文字幕| 色姑娘综合网| 亚洲色图17p| 亚洲欧美另类在线| www.黄色av| 熟女俱乐部一区二区| 国内精品二区| 色狠狠久久aa北条麻妃 | 国产电影精品久久禁18| 国产又粗又黄又猛| 亚洲亚洲精品三区日韩精品在线视频| 最近日韩中文字幕中文| 亚洲v精品v日韩v欧美v专区| 少妇精品高潮欲妇又嫩中文字幕| 日韩一级av毛片| 女人床在线观看| 久久中文字幕一区| 色综合久久综合| 不卡av免费在线观看| 国产女人18毛片水18精| 亚洲黄色小说视频| 国内精品在线观看视频| 成人春色激情网| 在线国产精品视频| 欧美日韩在线第一页| 成人黄色a**站在线观看| 91午夜交换视频| 91激情视频在线观看| 国产经典久久久| 成人天堂噜噜噜| 亚洲免费视频一区二区| 欧美性jizz18性欧美| 狠狠色2019综合网| 亚洲天堂aaa| 欧美视频www| 天美一区二区三区| 一本一道久久a久久精品综合 | 中文字幕在线观看视频免费| 无码人妻丰满熟妇区毛片蜜桃精品| 一本一道久久a久久精品综合| 欧美亚洲日本黄色| 在线亚洲欧美视频| 欧美综合视频在线观看| 夜色激情一区二区| www.久久精品.com| 中文字幕在线观看2018| 欧美成人免费高清视频| 日本成人黄色| 2014亚洲精品| 日韩av快播网址| 欧美黑人性视频| 欲色天天网综合久久| 亚洲第一区在线| 欧美精品日韩一本| 亚洲成人一区在线| **欧美大码日韩| 国产视频一区二区在线观看| 国产成人在线视频播放| 日韩av一区二区三区| 亚洲精品一区二区三区区别| 精品无码久久久久久久| 性久久久久久久久久久| 久久精品视频在线观看免费| 日韩av三级在线| 欧美性视频在线播放| 国模精品娜娜一二三区| 17婷婷久久www| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 精品久久久久久久中文字幕| 国产色综合一区| 99久久精品国产一区| 国产精品中文字幕欧美| 激情五月婷婷综合| 成人羞羞国产免费图片| av老司机久久| 97超碰人人草| 国产又粗又大又黄| 无码一区二区三区| 久久久久久国产精品视频| 深夜福利影院在线观看| 日本一级黄色大片| 欧美三级 欧美一级| 国产福利久久久| 毛片视频网站在线观看| 在线免费观看av网址| 国产精品久久久午夜夜伦鲁鲁| 一道本无吗一区| 亚洲一区精品在线观看| 一区精品在线观看| 国产乱色精品成人免费视频| 91精品国产综合久| 丰满人妻一区二区| 欧美一级淫片aaaaaa| 亚洲精品911| 蜜桃av一区二区| 韩国精品免费视频| www国产成人| 亚洲午夜一区二区| 欧美亚洲一区二区在线观看| 欧美成人a视频| 色av吧综合网| 国产成+人+综合+亚洲欧洲| 国产原创欧美精品| 久久精品成人一区二区三区蜜臀| 欧洲xxxxx| 污视频网址在线观看| 日韩一级av毛片| 久久艹精品视频| 亚洲第一免费视频|