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
| <?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class IndexController extends Controller {
public function index(Request $request) { $referer = $request->header('referer');
if(!$referer) { return '参数错误'; }
if(!$this->verify($referer)) { return '不是微信小程序来源'; }
$parse = $this->parse($referer);
return '正确'; }
public function verify($referer) { if(!filter_var($referer, FILTER_VALIDATE_URL)) { return false; }
preg_match_all('/^https:\/\/servicewechat\.com\/wx[a-z0-9]{16}\/(devtools|([a-zA-Z0-9.]{1,}))\/page-frame\.html$/', $referer, $matches);
return count($matches[0]) > 0; }
public function parse(string $referer) { $parse = parse_url($referer, PHP_URL_PATH);
$parse = explode('/', substr($parse, 1));
return [ 'appid' => $parse[0], 'version' => $parse[1], ]; } }
|