×ðÁú¿­Ê±

thinkphp5ÅжÏÊÇ·ñÊÇС³ÌÐò

Ëæ×ÅС³ÌÐòµÄÉú³¤£¬Ô½À´Ô½¶àµÄwebÓ¦ÓóÌÐò¶¼ÔÚ¾ÙÐÐС³ÌÐòµÄ¿ª·¢ ¡£ÔÚ¿ª·¢Ð¡³ÌÐòʱ£¬ÎÒÃÇÍùÍùÐèÒª¶Ô»á¼ûÇëÇó¾ÙÐÐÅжÏ£¬ÒÔ±ãΪС³ÌÐòÌṩרÊôµÄЧÀÍ ¡£

¹ØÓÚʹÓÃThinkPHP5¿ò¼Ü¿ª·¢µÄWebÓ¦ÓóÌÐò£¬Åжϻá¼ûÇëÇóÊÇ·ñÀ´×ÔС³ÌÐòÒ²ºÜÊǼòÆÓ£¬ÏÂÃæ¾ÍÀ´ÏÈÈÝÒ»ÏÂÏêϸµÄʵÏÖÒªÁì ¡£

Ò»¡¢Ð¡³ÌÐòÇëÇóµÄÌØÕ÷

С³ÌÐòÔÚÏòWebÓ¦ÓóÌÐò·¢ËÍÇëÇóʱ£¬»áÔÚHTTPÍ·²¿£¨header£©ÖÐÌí¼ÓһЩÌØÊâµÄ±êʶ£¬ÒÔ±ãWebÓ¦ÓóÌÐòÄܹ»Ê¶±ðÕâЩÇëÇóÀ´×ÔС³ÌÐò ¡£ÆäÖУ¬³£¼ûµÄС³ÌÐòÇëÇóÌØÕ÷°üÀ¨ÒÔϼ¸¸ö£º

User-AgentÖаüÀ¨Ð¡³ÌÐòµÄ±êʶ

ÔÚHTTPÍ·²¿µÄUser-Agent×Ö¶ÎÖУ¬Ð¡³ÌÐò¶¼»á´øÉÏ×Ô¼ºµÄ±êʶ ¡£ÀýÈç΢ÐÅС³ÌÐòµÄ±êʶÊÇ”miniProgram”£¬Ö§¸¶±¦Ð¡³ÌÐòµÄ±êʶÊÇ”AlipayClient” ¡£

Á¬Ã¦Ñ§Ï°¡°PHPÃâ·ÑѧϰÌõ¼Ç£¨ÉîÈ룩¡±£»

RefererÖаüÀ¨Ð¡³ÌÐòµÄ±êʶ

С³ÌÐòÔÚÏòWebÓ¦ÓóÌÐòÌᳫÇëÇóʱ£¬»áЯ´ø×Ô¼ºµÄȪԴÐÅÏ¢£¬¼´Referer×ֶΠ¡£WebÓ¦ÓóÌÐò¿ÉÒÔͨ¹ýReferer×Ö¶ÎÅжÏÇëÇóÊÇ·ñÀ´×ÔС³ÌÐò ¡£ÀýÈ磬΢ÐÅС³ÌÐòµÄRefererÖлá°üÀ¨”servicewechat.com” ¡£

ContentTypeΪ”application/json”

С³ÌÐòÏòWebÓ¦ÓóÌÐò·¢ËÍÇëÇóʱ£¬Í¨³£¶¼ÊÇÒÔ”application/json”ÃûÌ÷¢Ë굀 ¡£Òò´Ë£¬WebÓ¦ÓóÌÐò¿ÉÒÔͨ¹ýContentType×Ö¶ÎÅжÏÇëÇóÊÇ·ñÀ´×ÔС³ÌÐò ¡£

½ÓÏÂÀ´£¬ÎÒÃǾͿÉÒÔͨ¹ýÉÏÊöÌØÕ÷À´ÅжÏÇëÇóÊÇ·ñÀ´×ÔС³ÌÐò£¬ÒÔÌṩרÊôµÄЧÀÍ ¡£

¶þ¡¢Ê¹ÓÃThinkPHP5ÅжÏС³ÌÐòÇëÇó

ÔÚThinkPHP5ÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃRequestÀàÀ´»ñÈ¡²¢ÅжÏÇëÇóµÄÏà¹ØÐÅÏ¢ ¡£ÏêϸʵÏÖÒªÁìÈçÏ£º

1.»ñÈ¡ÇëÇóµÄUser-AgentÐÅÏ¢£º

$userAgent = $this->request->header('User-Agent');

µÇ¼ºó¸´ÖÆ

2.»ñÈ¡ÇëÇóµÄRefererÐÅÏ¢£º

$referer = $this->request->header('Referer');

µÇ¼ºó¸´ÖÆ

3.»ñÈ¡ÇëÇóµÄContentTypeÐÅÏ¢£º

$contentType = $this->request->contentType();

µÇ¼ºó¸´ÖÆ

ÉÏÊö´úÂë¿ÉÒÔ·ÅÔÚ¿ØÖÆÆ÷µÄÒªÁìÖоÙÐÐŲÓà ¡£

Èý¡¢Ð¡³ÌÐòÇëÇó×èµ²Æ÷

³ýÁËÖ±½ÓÔÚ¿ØÖÆÆ÷µÄÒªÁìÖÐÅжÏÊÇ·ñΪС³ÌÐòÇëÇóÖ®Í⣬ÎÒÃÇ»¹¿ÉÒÔʹÓÃThinkPHP5µÄÇëÇó×èµ²Æ÷À´¶ÔС³ÌÐòÇëÇó¾ÙÐÐͳһ×èµ²ºÍ´¦Öóͷ£ ¡£

ÏêϸʵÏÖÒªÁìÈçÏ£º

1.ÔÚapplicationĿ¼Ï½¨ÉèmiddlewareĿ¼£¬ÔÚmiddlewareĿ¼Öн¨ÉèCheckMiniProgram.phpÎļþ£¨ÎļþÃû¿ÉÒÔ×Ô½ç˵£© ¡£

2.ÔÚCheckMiniProgram.phpÎļþÖбàд×èµ²Æ÷´úÂ룬ÅжÏÇëÇóÊÇ·ñÀ´×ÔС³ÌÐò£¬ÈôÊÇÊÇÔò¾ÙÐÐÏà¹Ø´¦Öóͷ£ ¡£ÀýÈ磺

namespace appmiddleware;

use thinkRequest;

class CheckMiniProgram
{
    public function handle(Request $request, Closure $next)
    {
        $contentType = $request->contentType();
        $userAgent = $request->header('User-Agent');
        $referer = $request->header('Referer');

        if ($contentType == 'application/json' &&
            strpos($userAgent, 'miniProgram') !== false &&
            strpos($referer, 'servicewechat.com') !== false) {
            //ÊÇС³ÌÐòÇëÇ󣬾ÙÐÐÏà¹Ø´¦Öóͷ£
            ...
        } else {
            //²»ÊÇС³ÌÐòÇëÇó£¬Ö±½Ó·ÅÐÐ
            return $next($request);
        }
    }
}

µÇ¼ºó¸´ÖÆ

ÔÚÉÏÊö´úÂëÖУ¬ÎÒÃÇÊ×ÏÈʹÓÃ$request->contentType()ÒªÁì»ñÈ¡ÇëÇóµÄContentTypeÐÅÏ¢£¬È»ºóÔÙʹÓÃ$request->header()ÒªÁì»ñÈ¡ÇëÇóµÄUser-AgentºÍRefererÐÅÏ¢ ¡£×îºó£¬ÅжÏÕâЩÐÅÏ¢ÊÇ·ñÇкÏС³ÌÐòÇëÇóµÄÌØÕ÷£¬ÈôÊÇÊÇÔò¾ÙÐÐÏìÓ¦µÄ´¦Öóͷ££¬²»È»Ö±½Ó·ÅÐÐ ¡£ÐèҪעÖصÄÊÇ£¬ÉÏÊö´úÂëÖеġ°…¡±´¦ÐèÒªÌîдÏÖʵµÄ´¦Öóͷ£Âß¼­ ¡£

3.ÔÚapplicationĿ¼ÏµÄmiddleware.phpÉèÖÃÎļþÖÐÌí¼ÓCheckMiniProgramÖÐÐļþ£º

return [
    'CheckMiniProgram' => appmiddlewareCheckMiniProgram::class,
];

µÇ¼ºó¸´ÖÆ

ÕâÑù£¬¾Í¿ÉÒÔÔÚÓ¦ÓóÌÐòµÄËùÓÐÇëÇóÖоÙÐÐС³ÌÐòÇëÇóµÄ×èµ²ºÍ´¦Öóͷ£ÁË ¡£

ËÄ¡¢×ܽá

±¾ÎÄÏÈÈÝÁËʹÓÃThinkPHP5ÅжÏС³ÌÐòÇëÇóµÄÒªÁìÒÔ¼°¶ÔС³ÌÐòÇëÇó¾ÙÐÐ×èµ²ºÍ´¦Öóͷ£µÄÒªÁì ¡£Í¨¹ý¹ØÓÚÇëÇóÖеÄUser-Agent¡¢RefererºÍContentTypeµÈÐÅÏ¢µÄÅжÏ£¬¿ÉÒÔÇáËÉÅжÏÇëÇóÊÇ·ñÀ´×ÔС³ÌÐò£¬²¢ÎªÐ¡³ÌÐòÌṩרÊôµÄЧÀÍ ¡£

ÒÔÉϾÍÊÇthinkphp5ÅжÏÊÇ·ñÊÇС³ÌÐòµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿