国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP微信開發之二維碼生成類

2024-05-04 23:36:53
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP微信開發之二維碼生成類,本文使用微信接口實現二維碼的生成,并直接給出示例代碼,需要的朋友可以參考下

 

 
  1. <?php 
  2. /** 
  3. * Created by PhpStorm. 
  4. * User: bin 
  5. * Date: 15-1-16 
  6. * Time: 上午9:48 
  7. */ 
  8. namespace Home/Common; 
  9.  
  10. // 微信處理類 
  11. set_time_limit(30); 
  12. class Weixin{ 
  13. //構造方法 
  14. static $qrcode_url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?"
  15. static $token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&"
  16. static $qrcode_get_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?"
  17.  
  18. //生成二維碼 
  19. public function getEwm($wechatid,$fqid,$type = 1){ 
  20. $wechat = M('Member_public')->where(array('id'=> $wechatid))->find(); 
  21. $appid = $wechat['appid']; 
  22. $secret = $wechat['secret']; 
  23. $ACCESS_TOKEN = $this->getToken($appid,$secret); 
  24. $url = $this->getQrcodeurl($ACCESS_TOKEN,$fqid,1); 
  25. return DownLoadQr($url,time()); 
  26. protected function getQrcodeurl($ACCESS_TOKEN,$fqid,$type = 1){ 
  27. $url = self::$qrcode_url.'access_token='.$ACCESS_TOKEN
  28. if($type == 1){ 
  29. //生成永久二維碼 
  30. $qrcode'{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": '.$fqid.'}}}'
  31. }else
  32. //生成臨時二維碼 
  33. $qrcode = '{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": '.$fqid.'}}}'
  34. $result = $this->http_post_data($url,$qrcode); 
  35. $oo = json_decode($result[1]); 
  36. if(!$oo->ticket){ 
  37. $this->ErrorLogger('getQrcodeurl falied. Error Info: getQrcodeurl get failed'); 
  38. exit(); 
  39. $url = self::$qrcode_get_url.'ticket='.$oo->ticket.''
  40. return $url
  41.  
  42.  
  43. protected function getToken($appid,$secret){ 
  44. $ACCESS_TOKEN = file_get_contents(self::$token_url."appid=$appid&secret=$secret"); 
  45. $ACCESS_TOKEN = json_decode($ACCESS_TOKEN); 
  46. $ACCESS_TOKEN = $ACCESS_TOKEN->access_token; 
  47. return $ACCESS_TOKEN
  48. protected function http_post_data($url$data_string) { 
  49.  
  50. $ch = curl_init(); 
  51. curl_setopt($ch, CURLOPT_POST, 1); 
  52. curl_setopt($ch, CURLOPT_URL, $url); 
  53. curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
  54. curl_setopt($ch, CURLOPT_HTTPHEADER, array
  55. 'Content-Type: application/json; charset=utf-8'
  56. 'Content-Length: ' . strlen($data_string)) 
  57. ); 
  58. ob_start(); 
  59. curl_exec($ch); 
  60. if (curl_errno($ch)) { 
  61. $this->ErrorLogger('curl falied. Error Info: '.curl_error($ch)); 
  62. $return_content = ob_get_contents(); 
  63. ob_end_clean(); 
  64. $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
  65. return array($return_code$return_content); 
  66. //下載二維碼到服務器 
  67. protected function DownLoadQr($url,$filestring){ 
  68. if($url == ""){ 
  69. return false; 
  70. $filename = $filestring.'.jpg'
  71. ob_start(); 
  72. readfile($url); 
  73. $img=ob_get_contents(); 
  74. ob_end_clean(); 
  75. $size=strlen($img); 
  76. $fp2=fopen('./Uploads/qrcode/'.$filename,"a"); 
  77. if(fwrite($fp2,$img) === false){ 
  78. $this->ErrorLogger('dolwload image falied. Error Info: 無法寫入圖片'); 
  79. exit(); 
  80. fclose($fp2); 
  81. return './Uploads/qrcode/'.$filename
  82.  
  83. private function ErrorLogger($errMsg){ 
  84. $logger = fopen('./ErrorLog.txt''a+'); 
  85. fwrite($loggerdate('Y-m-d H:i:s')." Error Info : ".$errMsg."/r/n"); 
  86.  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马尔康县| 安阳县| 香格里拉县| 西贡区| 西畴县| 凌源市| 瑞昌市| 固阳县| 金塔县| 都匀市| 福泉市| 永泰县| 梅河口市| 大关县| 北京市| 渝中区| 九龙城区| 岢岚县| 杭州市| 射洪县| 南投县| 山丹县| 陕西省| 花莲市| 大邑县| 得荣县| 饶河县| 西城区| 潮安县| 句容市| 应城市| 朔州市| 绥化市| 韩城市| 邛崃市| 遵义市| 甘孜县| 铜鼓县| 康马县| 肥东县| 漳浦县|