POST https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=ACCESS_TOKEN
{
"expire_seconds": 1800,
"action_name": "QR_SCENE",
"action_info": { "scene": { "scene_id": 123 } }
}
{
"action_name": "QR_LIMIT_SCENE",
"action_info": { "scene": { "scene_id": 123 } }
}
{
"action_name": "QR_LIMIT_STR_SCENE",
"action_info": { "scene": { "scene_str": "promo_2024_q4" } }
}
{
"ticket": "gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm3sUw==",
"expire_seconds": 1800,
"url": "https://weixin.qq.com/q/kZgfwMTm72WWPkovabbI"
}
GET 請求:https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET
注意:ticket 需 urlencode 後拼接。
<xml> <ToUserName><![CDATA[gh_xxx]]></ToUserName> <FromUserName><![CDATA[oxxx]]></FromUserName> <CreateTime>1429416610</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[SCAN]]></Event> <!-- 或 subscribe --> <EventKey><![CDATA[123]]></EventKey> <!-- 場景值 --> <Ticket><![CDATA[gQH47jo...]]></Ticket> </xml>
| 場景 | Scene 設計 | 業務邏輯 |
|---|---|---|
| 渠道推廣統計 | 渠道代碼(如 channel_01) | 掃碼關注後記錄來源,生成渠道效果報表 |
| 猜謎/答題游戲 | 謎題 ID | 掃碼直接返回謎底,免去輸入 |
| 掃碼領紅包 | 活動 ID + 用戶標識 | 驗證資格後發放紅包,防刷 |
| 設備綁定 | 設備序列號 | 掃碼綁定設備到用戶賬號 |
function createQrTicket($access_token, $scene_id, $type = 'permanent') {
$url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={$access_token}";
$data = [
'action_name' => $type === 'temp' ? 'QR_SCENE' : 'QR_LIMIT_SCENE',
'action_info' => ['scene' => ['scene_id' => $scene_id]]
];
if ($type === 'temp') $data['expire_seconds'] = 1800;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
return json_decode(curl_exec($ch), true);
}
帶參數二維碼是連接線下場景與線上業務的關鍵橋樑,靈活運用 Scene 值可實現精準營銷、用戶分層、設備綁定等豐富玩法。