微信二维码海报推广示例
这俩天根据客户 需求 微信商城 能生成自己的二维码 并且 需先关注公众号,扫码的用户显示出自己的上级
研究两天,发现微信二维码接口能实现这个功能 !思路:1.生成微信永久二位码 具体看微信公众文档
http://mp.weixin.qq.com/wiki/18/167e7d94df85d8389df6c94a7a8f78ba.html
2.获取生成的二维码 创建缩略图
3.将二维码缩略图 放到海报上面(微信小头像 也是这个思路)
4.将生成好图片 上传到微信素材 具体见微信文档
http://mp.weixin.qq.com/wiki/15/2d353966323806a202cd2deaafe8e557.html
5将返回的media_id 通过Xml发送给用户
这样一个生成海报的的示例完成了 下面为部分代码
/* @$poster_path 海报路径 @$openid 当前用户openid @$qrcode_path 生成的目录 */ public function Create_img($poster_path,$qrcode_path="./qrcode_temp/",$openid){ if($openid){ $this->Check_dir($poster_path); $qrcode=@file_get_contents($qrcode_path.$openid.".jpg"); if(!$qrcode){ $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$this->getAccessToken(); $data = [ "action_name" => "QR_LIMIT_STR_SCENE", "action_info" => [ "scene" => ["scene_str" => "invite_".$openid], ], ]; //通过curl post请求 $result = $this->curlPost($url,json_encode($data)); $url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($result->ticket); $ch = curl_init(); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, $url); ob_start(); curl_exec($ch); $qr_content = ob_get_contents(); header("Content-type: image/jpg"); ob_end_clean(); //缩放二维码大小为需要的大小,并将二维码加入到海报中 $thumb = imagecreatetruecolor(200, 200); //获取源文件资源句柄。接收参数为图片流,返回句柄 $source = imagecreatefromstring($qr_content); //将源文件剪切全部域并缩小放到目标图片上,前两个为资源句柄 imagecopyresampled($thumb, $source, 0, 0, 0, 0, 200, 200, 430, 430); //创建图片的实例,接收参数为图片 $dst_qr = @imagecreatefromstring(file_get_contents($poster_path)); //加水印 imagecopy($dst_qr,$thumb, 320, 50, 0, 0, 200, 200); //销毁 imagedestroy($thumb); ob_start();//启用输出缓存,暂时将要输出的内容缓存起来 imagejpeg($dst_qr,$qrcode_path.$openid.".jpg",90);//输出 $poster = ob_get_contents();//获取刚才获取的缓存 ob_end_clean();//清空缓存 imagedestroy($dst_qr); $post_data["media"] = "@".$qrcode_path.$openid.".jpg"; $result=$this->uploadMedia($this->getAccessToken(),"image",$post_data); if($result) { $media_id=$result->media_id; } }else{ $post_data["media"] = "@".$qrcode_path.$openid.".jpg"; $result=$this->uploadMedia($this->getAccessToken(),"image",$post_data); if($result) { $media_id=$result->media_id; } } return $media_id; } } //上传到微信临时素材方法 public function uploadMedia($accessToken,$type="image",$mediaArr){ $url="http://api.weixin.qq.com/cgi-bin/media/upload?access_token=".$accessToken."&type=".$type; $doPost=$this->curlPost($url,$mediaArr); return $doPost; } //注意php5.5 curl上传需 new CURLFile类
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了