"); //-->
今天扣丁学堂小编给大家带来一个实用比较强的编程入门教程,现在微信的普及度相当的高,而二维码对于渠道的营销推广的用处是非常大,现二维码分为两种:临时二维码、永久二维码,下面就来研究学习一下吧,现在可以通过微信接口实现二维码的生成。

/**
*CreatedbyPhpStorm.
*User:bin
*Date:15-1-16
*Time:上午9:48
*/
namespaceHomeCommon;
//微信处理类
set_time_limit(30);
classWeixin{
//构造方法
static$qrcode_url="https://api.weixin.qq.com/cgi-bin/qrcode/create?";
static$token_url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&";
static$qrcode_get_url="https://mp.weixin.qq.com/cgi-bin/showqrcode?";
//生成二维码
publicfunctiongetEwm($wechatid,$fqid,$type=1){
$wechat=M('Member_public')->where(array('id'=>$wechatid))->find();
$appid=$wechat['appid'];
$secret=$wechat['secret'];
$ACCESS_TOKEN=$this->getToken($appid,$secret);
$url=$this->getQrcodeurl($ACCESS_TOKEN,$fqid,1);
returnDownLoadQr($url,time());
}
protectedfunctiongetQrcodeurl($ACCESS_TOKEN,$fqid,$type=1){
$url=self::$qrcode_url.'access_token='.$ACCESS_TOKEN;
if($type==1){
//生成永久二维码
$qrcode='{"action_name":"QR_LIMIT_SCENE","action_info":{"scene":{"scene_id":'.$fqid.'}}}';
}else{
//生成临时二维码
$qrcode='{"expire_seconds":1800,"action_name":"QR_SCENE","action_info":{"scene":{"scene_id":'.$fqid.'}}}';
}
$result=$this->http_post_data($url,$qrcode);
$oo=json_decode($result[1]);
if(!$oo->ticket){
$this->ErrorLogger('getQrcodeurlfalied.ErrorInfo:getQrcodeurlgetfailed');
exit();
}
$url=self::$qrcode_get_url.'ticket='.$oo->ticket.'';
return$url;
}
protectedfunctiongetToken($appid,$secret){
$ACCESS_TOKEN=file_get_contents(self::$token_url."appid=$appid&secret=$secret");
$ACCESS_TOKEN=json_decode($ACCESS_TOKEN);
$ACCESS_TOKEN=$ACCESS_TOKEN->access_token;
return$ACCESS_TOKEN;
}
protectedfunctionhttp_post_data($url,$data_string){
$ch=curl_init();
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Content-Type:application/json;charset=utf-8',
'Content-Length:'.strlen($data_string))
);
ob_start();
curl_exec($ch);
if(curl_errno($ch)){
$this->ErrorLogger('curlfalied.ErrorInfo:'.curl_error($ch));
}
$return_content=ob_get_contents();
ob_end_clean();
$return_code=curl_getinfo($ch,CURLINFO_HTTP_CODE);
returnarray($return_code,$return_content);
}
//下载二维码到服务器
protectedfunctionDownLoadQr($url,$filestring){
if($url==""){
returnfalse;
}
$filename=$filestring.'.jpg';
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
$size=strlen($img);
$fp2=fopen('./Uploads/qrcode/'.$filename,"a");
if(fwrite($fp2,$img)===false){
$this->ErrorLogger('dolwloadimagefalied.ErrorInfo:无法写入图片');
exit();
}
fclose($fp2);
return'./Uploads/qrcode/'.$filename;
}
privatefunctionErrorLogger($errMsg){
$logger=fopen('./ErrorLog.txt','a+');
fwrite($logger,date('Y-m-dH:i:s')."ErrorInfo:".$errMsg."rn");
}
}
以上就是这次编程入门教程中关于PHP微信开发之使用微信接口实现二维码生成的PHP学习,,最后想要了解更多关于PHP开发发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的PHP培训视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的一套PHP视频教程课程,让你快速掌握PHP从入门到精通开发实战技能。扣丁学堂PHP技术交流群:374332265。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
《嵌入式系统设计》23-MP3播放器设计(Uboot上增加新设备Ramdisk到结束)及网络存储设计(开始到结束)及一部分补充说明
《嵌入式系统设计》22-MP3播放器设计(设计方法到块设备读取)
VGA同步信号自动振荡器
ASD/FSK发射器TDA5100的原理及应用
Proximus Global旗下公司Telesign与PCI Pal合作 助力企业提前发现支付欺诈行为
利用晶体管二次击穿的振荡电路
PC厂商纷纷涉足电子产品市场
据报道,LG 电子使用 LTPS TFT 玻璃开发 130 英寸 MicroLED 显示屏
AT91SAM7S64调试笔记
1500家原厂直供、100万工程师首选!世强硬创何以成为“不可替代”的电子研发底座?
十分透彻!详解去耦电容!文科生看完都理解了!
电感啸叫
手机库存增加危及产业链
英伟达采用赛迪斯功率分析工具重新生产 Rubin 芯片
12路1080P高清视频流,米尔RK3576开发板重塑视频处理极限
特朗普考虑对芯片征收300%的关税
有人能提供一个Multi-ICE兼容的线路图就好了
使用TTL电路的4.59MHz振荡器
中国首台商用电子束光刻机揭幕
电感反馈振荡电路
EasyARM1138嵌入式专题讲座
ASCII代码表
ARM everyone的LCD
展示现代安全技术的气囊系统模型车
大家讨论一下6000DSP程序的具体优化吧
ASM-51宏汇编使用手册
用比较器组成的晶体振荡器
采用9S08LG32的汽车LCD仪表板设计
atmega8熔丝位说明
开关电源的PCB设计参考