gyrgyr
<?php
namespace Business\Controller;
use Business\Controller\BaseController;
use Think\Hook;

/**
 * 关注公众号 
 * @author 戈丫汝<534208139@qq.com>
 */
class WxqrcodeController{
    protected $appid = \'\';
    protected $secret = \'\';
    protected $url = "";
    protected $access_tokens = "";

    public function __construct(){
        $mpid = $_GET[\'mpid\'];
        $iinfo = M(\'test\')->where([\'id\'=>$mpid])->find();
        $this->appid = $iinfo[\'appid\'];
        $this->secret = $iinfo[\'appsecret\'];
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $this->appid . "&secret=" . $this->secret . "";
        $result = $this->curl_post($url);
        $access_tokens = json_decode($result, true);
        $this->access_tokens = $access_tokens[\'access_token\'];
    }
    //打印二维码显示
    public function Follow(){
        $scene_str = $_GET[\'id\'];
        $rs = $this->getTemporaryQrcode($this->access_tokens, $scene_str);
        $ticket = $rs[\'ticket\'];
        $qrcode = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . $ticket . "";
        echo $qrcode;
    }
    //生成二维码
    public function getTemporaryQrcode($access_tokens,$orderId=\'\'){
        $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" .$access_tokens . "";
        //生成二维码需要的参数
        $qrcode = \'{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": \' . $orderId . \'}}}\';
        $momo = json_decode($qrcode, true);
        $result = $this->curl_post($url, $momo);
        $rs = json_decode($result, true);
        return $rs;
    }
    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(
                \'Content-Type: application/json\'
            )
        );
        $data = curl_exec($ch);
        curl_close($ch);
        return ($data);
    }
}

 生成二维码为扫描关注公众号,我们业务需求实现结果是,在微信关注或者scan事件监听场景id(推荐码),绑定成功后公众号推送消息.

注意:

  公众号场景二维码scenceid限制最大数字为 100000 ! 超过的生成不了

分类:

技术点:

相关文章:

  • 2021-05-05
  • 2021-12-13
  • 2021-12-10
  • 2021-05-03
  • 2021-12-23
  • 2021-12-16
猜你喜欢
  • 2021-11-19
  • 2021-12-22
  • 2021-12-16
  • 2021-11-07
  • 2021-12-23
相关资源
相似解决方案