主要是在function文件中 写一个公共调用的生成二维码的方法,在写一个curl提交数据的方法。在不懂去看微信官方文档的说明。
/**
* 生成二维码方法
* @param 用户id $userid
* @param $type 类型: 1永久 2临时
* @return string 二维码图片连接
*/
function GenerateQrCodes($userid,$type='2'){
/***************** 生成二维码连接 ****************/
// 获取微信token
$ACCESS_TOKEN = wx_Get_Token()
$postUrl = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=$ACCESS_TOKEN";
if( $type == '2' ){
$postArr = array(
'expire_seconds' => 2592000,
'action_name' => 'QR_SCENE',
'action_info' => array(
'scene'=> array(
'scene_id' => $userid
)
),
);
}else{
$postArr = array(
'expire_seconds' => 2592000,
'action_name' => 'QR_SCENE',
'action_info' => array(
'scene'=> array(
'scene_id' => $userid
)
),
);
}
// post请求数据
$postJson = urldecode(json_encode($postArr));
$json = getHttpCurl($postUrl,'post',$postJson);
// 通过ticket换取二维码
$TICKET = urldecode($json['ticket']);
$img = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=$TICKET";
/***************** 生成二维码连接 ****************/
return $img;
}
/**
* 构建一个发送请求的curl方法
* @param 发送url $url
* @param 类型:get post $type
* @param 发送数据 $arr
* @return 返回json数据
*/
function getHttpCurl($url, $type='get', $arr=''){
// 初始化curl
$ch =curl_init();
// 设置传输地址
curl_setopt($ch, CURLOPT_URL, $url);
// 设置以文件流形式输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if($type == 'post'){
// 设置已post方式请求
curl_setopt($ch,CURLOPT_POST,1);
// 设置post文件
curl_setopt($ch,CURLOPT_POSTFIELDS,$arr);
}
// 采集
$output = curl_exec($ch);
// 关闭
curl_close($ch);
// 接收返回数据
$jsonInfo = json_decode($output,true);
//dump($jsonInfo);
return $jsonInfo;
}