微信生成带参数二维码,跳转公众号
protected $appid = ''; protected $secret = ''; protected $access_tokens; private function access_token_lst(){ //获取$access_token $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 qr_code() { //获取access_token $this->access_token_lst(); //非必传项 $rs = $this->getTemporaryQrcode($this->access_tokens, 12345678912345678912345678912345); $ticket = $rs['ticket']; $qrcode = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . $ticket . ""; echo "<img src=". $qrcode .">"; } //生成二维码 private 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_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; } private 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); }
原文:https://www.cnblogs.com/jiaoda/p/10769129.html