认证服务号获取带参数的二维码接口

业务场景是:系统有一些宣传海报,用户进入海报详情页会获取自己唯一的海报二维码,别人扫二维码可以有一系列的业务流程处理

框架用的微擎

话不多说直接上代码:

    function getImgUrl($scene_id){  // 当用户是第二次进入到系统中时可以直接获取之前存储的二维码
global $_W,$_GPC;
$rs = pdo_get('sanshi_haibao_qrcode',array('scene_id'=>$scene_id));
// 插入二维码表
if(!$rs){
$content = getQrcodeImage($scene_id);
$qrcode = array(
'type'=>1,
'scene_id'=>$scene_id,
'ticket'=>$content['ticket'],
'expire'=>$content['expire_seconds'],
'created_at'=>date('Y-m-d H:i:s'),
'uniacid'=>$_W['uniacid'],
);
// 通过ticket请求地址得到图片
        $qrcode['url'] = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($content['ticket']);
$content = file_get_contents($qrcode['url']);
        file_put_contents(IA_ROOT.'/attachment/images/poster/'.$scene_id.'.jpg', $content);

$res = pdo_insert('sanshi_haibao_qrcode',$qrcode);// 插入二维码表
}
$imageUrl = '/attachment/images/poster/'.$scene_id.'.jpg';

return $imageUrl;
}
function getQrcodeImage($scene_id){    // 通过用户独特的scene_id获取二维码ticket等信息
global $_W,$_GPC;
if($scene_id == ''){
message('error');
}
load()->model('account');
// 生成二维码
$uniacccount = WeAccount::create($acid); // 获取公众号信息
$barcode['expire_seconds'] = '2592000'; // 过期时间
$barcode['action_info']['scene']['scene_id'] = $scene_id;
$barcode['action_name'] = 'QR_SCENE';
$token = $uniacccount->getAccessToken();
$response = ihttp_request("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$token, json_encode($barcode));
if (is_error($response)) {
return $response;
}
$content = @json_decode($response['content'], true);


if(empty($content)) {
return error(-1, "接口调用失败, 元数据: {$response['meta']}");
}
if (!empty($content['errcode'])) {
return error(-1, "访问微信接口错误, 错误代码: {$content['errcode']}, 错误信息: {$content['errmsg']},错误详情:{$this->errorCode($content['errcode'])}");
}
return $content;

}


代码很青涩,请赐教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值