微信生成二维码 PHP

 

复制代码
<?php
/**
 * Created by PhpStorm.
 * User: liyiming
 * Date: 2019/8/8
 * Time: 14:23
 */
# 生成二维码
class WxTCode{
    protected $appid = '';
    protected $secret = '';protected $access_tokens = "";
    public function __construct($appid,$secret){
        $this->appid = $appid;
        $this->secret = $secret;
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $this->appid . "&secret=" . $this->secret . "";
        $result = $this->curl_post($url);
        $this->access_tokens = $result['access_token'];
    }




    public function ShowCode(){
        $rs = $this->getTemporaryQrcode($this->access_tokens, 123);
        $ticket = $rs['ticket'];
        $qrcode = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . $ticket . "";
        # 当前页直接显示
        Header("Location:$qrcode");
    }


    /**
     *   生成二维码
     * @param $access_tokens
     * @param $orderId
     * @return mixed
     */
    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_LIMIT_SCENE", "action_info": {"scene": {"scene_id": ' . $orderId . '}}}';
        $result = $this->curl_post($url, $qrcode);
        return $result;
    }

    /**
     * @param $url
     * @param null $data
     * @param string $method
     * @param bool $https
     * @return mixed
     */
    private function curl_post($url, $data=null,$method='POST', $https=true){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        if($https){
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
            if($method == 'POST'){
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            }
            $content = curl_exec($ch);
            curl_close($ch);
            return json_decode($content,true);
        }
    }
}

$Wxfollow = new WxTCode('appid','secret');
$follow = $Wxfollow->ShowCode();
复制代码

 

posted @   现世中的素人  阅读(600)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示