Maison  >  Article  >  développement back-end  >  Code d'implémentation pour scanner le code QR à suivre et suivre en un clic le compte officiel WeChat

Code d'implémentation pour scanner le code QR à suivre et suivre en un clic le compte officiel WeChat

小云云
小云云original
2018-03-16 14:00:1916192parcourir

Cet article partage principalement avec vous le code d'implémentation de la numérisation du code QR pour suivre et suivre en un clic le compte public WeChat, dans l'espoir d'aider tout le monde à mieux développer la fonction de compte public WeChat.

 * 获取一键关注授权标识
 * */
public function getIdentification()
{
    $burl = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=" . $this->access_tokens . "";
    $result = curl_get($burl);
    preg_match('/__biz.*&mid/', $result, $matches);//正则截取字符串
    $sVid = $this->get_between($matches[0], "__biz=", "==&mid");//截取出微信公众号唯一标识
    $okurl="https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=".$sVid."==&scene=124#wechat_redirect";
    jumpUrl($okurl);

}

Méthode personnalisée php pour intercepter la partie médiane de la chaîne, elle est utilisée ci-dessus, postez-la

/* * php截取指定两个字符之间字符串 * */function get_between($input, $start, $end)
{    $substr = substr($input, strlen($start) + strpos($input, $start), 
(strlen($input) - strpos($input, $end)) * (-1));    return $substr;}

Scannez le code sur le compte officiel WeChat pour suivre le code !

Scannez d'abord le code avant et après le compte officiel WeChat pour suivre le code qui n'est pas séparé

<?php
header("Content-type: text/html; charset=utf-8");
//http://pay.sucaihuo.com/project/access_token
//php获取微信access_token,appid和app_secret得到微信access_token
//php根据appid和secret获取微信access_token,php通过curl远程获取微信access_token信息
$appid = &#39;自己公众号的appid&#39;;
$secret = &#39;自己公众号的secret &#39;;
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $secret . "";
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
if($result == false)
{
    echo &#39;Curl error: &#39; . curl_error($ch);
}
curl_close($ch);
$access_tokens = json_decode($result, true);
//print_r($access_tokens);
$access_token = $access_tokens[&#39;access_token&#39;];
function getTemporaryQrcode($access_token, $orderId) {
    $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" . $access_token . "";
    $qrcode = &#39;{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": &#39; . $orderId . &#39;}}}&#39;;
    $result = api_notice_increment($url, $qrcode);
    $rs = json_decode($result, true);
    return $rs;
//    return urldecode($rs[&#39;url&#39;]);
}
$rs = getTemporaryQrcode($access_token, 1123);
//print_r($rs);
$ticket = $rs[&#39;ticket&#39;];
$qrcode = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . $ticket . "";
//print_r($qrcode);
function api_notice_increment($url, $data) {
    $ch = curl_init();
//    $header = "Content-type: text/xml";
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
//    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_USERAGENT, &#39;Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)&#39;);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $tmpInfo = curl_exec($ch);
    if (curl_errno($ch)) {
        curl_close($ch);
        return $ch;
    } else {
        curl_close($ch);
        return $tmpInfo;
    }
}
?>
<p style="text-align: center;">
<p>关注素材火公众号</p>
<img src="<?php echo $qrcode; ?>" alt="关注公众号二维码" style="width:100px;height:100px;"/>
</p>

puis mettez le code modifié dans l'interface

post méthode

class Wxfollow
{
    protected $appid = 'wxf1d959b99f33b156';
    protected $secret = '248f3a560604555ec96215c085cb2723';
    protected $url = "";
    protected $access_tokens = "";


   public function __construct()
    {
        //获取$access_token
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $this->appid . "&secret=" . $this->secret . "";
        $result = curl_post($url);
        $access_tokens = json_decode($result, true);
        $this->access_tokens = $access_tokens['access_token'];

    }
    public function Follow(){
        //非必传项
        $rs = $this->getTemporaryQrcode($this->access_tokens, 123);
        $ticket = $rs['ticket'];
        $qrcode = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . $ticket . "";
        ///打印二维码显示
        jumpUrl($qrcode);
    }

//生成二维码
    public function getTemporaryQrcode($access_tokens,$orderId)
    {
        $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" .$access_tokens . "";
//生成二维码需要的参数
        $qrcode = '{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": ' . $orderId . '}}}';
        $momo = json_decode($qrcode, true);

        $result = curl_post($url, $momo);
        $rs = json_decode($result, true);
        return $rs;
    }

classe d'encapsulation curl

function curl_post($url, array $params = array())
{
    $data_string = json_encode($params);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_HTTPHEADER,
        array(
            &#39;Content-Type: application/json&#39;
        )
    );
    $data = curl_exec($ch);
    curl_close($ch);
    return ($data);
}

Recommandations associées :

Utilisez php pour déterminer si l'utilisateur suit le compte public WeChat

Comment générer automatiquement des abonnés en fonction du code d'identification WeChat Image du code QR du compte public WeChat

Développement en arrière-plan PHP Exemple de compte public WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn