| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | <?phpnamespace App\Http\Controllers\Wap\Subscribe;use App\Modules\Cpa\Services\AdvertiseUserQueueService;use App\Modules\OfficialAccount\Services\ForceSubscribeService;use App\Modules\Subscribe\Services\OrderService;use App\Modules\User\Services\UserService;use Illuminate\Http\Request;use App\Http\Controllers\Controller;use App\Modules\Channel\Services\ChannelSubscribeSettingService;use Redis;use Cookie;use DB;class LinkSubscribeController extends Controller{    public function index(Request $request)    {        $uid = $request->input('uid');        $channel_id = $request->input('distribution_channel_id');        $send_order_id = $request->input('send_order_id', 0);        $appid = $request->input('appid');        $bid = $request->input('bid', 0);        $h5_scheme = env('H5_SCHEME', 'https');        if (empty($uid) || empty($appid)) {            $auth_url = $h5_scheme . '://' . _domain();        } else {            $sub_setting = ChannelSubscribeSettingService::getSubscribeTypeByAppId($appid);            if ($sub_setting && strpos($sub_setting->force_subscribe_type, '3') !== false && !empty($sub_setting->resource_url)) {                $url = $h5_scheme . '://' . _domain() . '/subauthback/?uid=' . $uid . '&distribution_channel_id=' . $channel_id . '&bid=' . $bid . '&send_order_id=' . $send_order_id . '&appid=' . $appid;                $auth_url = env('QRCODE_AUTH_URL') . '?gzh_app_id=' . $appid . '&redirect_url=' . urlencode($url);            } else {                $auth_url = $h5_scheme . '://' . _domain();            }        }        return redirect()->to($auth_url);    }    public function wxAuthCallBack(Request $request)    {        $uid = $request->input('uid');        $bid = $request->input('bid', 0);        $channel_id = $request->input('distribution_channel_id', 5);        $openid = $request->input('openid');        $appid = $request->input('appid');        $send_order_id = $request->input('send_order_id', 0);        $sub_setting = ChannelSubscribeSettingService::getSubscribeTypeByAppId($appid);        if ($sub_setting && !empty($sub_setting->resource_url)) {            Redis::hset('book:linksubscribe:openid:' . $openid . ':channelid:' . $channel_id, 'uid', $uid);            Redis::hset('book:linksubscribe:openid:' . $openid . ':channelid:' . $channel_id, 'bid', $bid);            Redis::hset('book:linksubscribe:openid:' . $openid . ':channelid:' . $channel_id, 'time', time());            Redis::hset('book:linksubscribe:openid:' . $openid . ':channelid:' . $channel_id, 'send_order_id', $send_order_id);            Redis::EXPIRE('book:linksubscribe:openid:' . $openid . ':channelid:' . $channel_id, 300);            Redis::hset('force_subscribe_from_bid', $appid . '_' . $uid, $bid);            Redis::hset('force_subscribe_from_send_order_id', $appid . '_' . $uid, $send_order_id);            return redirect()->to($sub_setting->resource_url);        } else {            $h5_scheme = env('H5_SCHEME', 'https');            $auth_url = $h5_scheme . '://site' . $channel_id . '.leyuee.com/';            return redirect()->to($auth_url);        }    }    public function subscribeView(Request $request)    {        $title = $request->input('title', '扫一扫');        $img = $request->input('img');        $head_img_pool = [            'https://cdn-novel.iycdm.com/h5/subscribe/headimg/1.png',            'https://cdn-novel.iycdm.com/h5/subscribe/headimg/2.png',            'https://cdn-novel.iycdm.com/h5/subscribe/headimg/3.png'        ];        //$head_img = $request->input('head_img','');        $num = Cookie::get('sub_random_num');        if (!$num) {            $num = random_int(10, 20);            Cookie::queue('sub_random_num', $num);        }        $uid = $request->get('uid');        $head_img = array_random($head_img_pool);        $domain = _domain();        $distribution_channel_id = str_replace('site', '', explode('.', $domain)[0]);        if (!is_numeric($distribution_channel_id)) {            $distribution_channel_id = decodeDistributionChannelId($distribution_channel_id);        }        $new_sub_page = env('NEW_SUB_PAGE', -1);        $template = 2;        if (in_array($distribution_channel_id, [123, 211, 2, 14])) {            if ($uid % 2 == 0) {                $template = 3;            }            //$this->userForceSubscribeTemplate($uid, $distribution_channel_id, $template);        }        if($this->appad($uid,$distribution_channel_id)){            if($uid % 2 == 0){                $this->userForceSubscribeTemplate($uid,$distribution_channel_id,4);                return view('wap.subscribeV3', compact('title', 'img', 'head_img', 'num', 'template'));            }else{                $this->userForceSubscribeTemplate($uid,$distribution_channel_id,3);                return view('wap.subscribeV2', compact('title', 'img', 'head_img', 'num', 'template'));            }        }else{            return view('wap.subscribeV2', compact('title', 'img', 'head_img', 'num', 'template'));        }    }    private function userForceSubscribeTemplate($uid, $distribution_channel_id, $template_type)    {        try {            DB::table('user_force_subscribe_template')->insert([                'uid' => $uid,                'distribution_channel_id' => $distribution_channel_id,                'template_type' => $template_type,                'created_at' => date('Y-m-d H:i:s'),                'updated_at' => date('Y-m-d H:i:s'),            ]);        } catch (\Exception $e) {        }    }    private function appad($uid, $distribution_channel_id)    {        $ads_open_site = env('ADS_OPEN_SITE','');        if($ads_open_site == 'all'){            return UserService::isCpcUser($uid);        }        if (!in_array($distribution_channel_id, explode(',', $ads_open_site))) {            return false;        }        return UserService::isCpcUser($uid);    }}
 |