搜尋
首頁微信小程式微信開發微信公眾平台開發獲取個性二維碼

微信公眾平台開發獲取個性二維碼

Mar 03, 2017 am 10:06 AM
微信大眾平台

 一、功能介紹

在進行推廣時,我們可以告訴對方,我們的微信公眾帳號是什麼,客戶可以去搜索,然後關注。二維碼給我們提供了極大的便捷,只要簡單一掃描,即可關注。

如果已經有註意過,立刻跳入對話畫面。當我們進行推廣時,不再是簡陋的文字,可以是一個有個性的二維碼,想必會很生動。

微信對二維碼提供了很好的支持,而且還可以根據需要產生不同場景的二維碼。下面我們將介紹如何取得和使用二維碼。

注意:限服務號,且進行了微信認證,費用300

微信公众平台开发获取个性二维码

二、相關介面

為了滿足使用者管道推廣分析的需要,公眾平台提供了產生參數二維碼的介面。使用此介面可獲得多個不同場景值的二維碼,使用者掃描後,公眾號可以接收到事件推送。

目前有2種類型的二維碼,分別是臨時二維碼和永久二維碼,前者有過期時間,最大為1800秒,但能夠產生較多數量,後者無過期時間,數量較少(目前參數只支援1--1000)。兩種二維碼分別適用於帳號綁定、使用者來源統計等場景。

用戶掃描帶場景值二維碼時,可能推送以下兩種事件:

  1. #如果用戶還未關注公眾號,則用戶可以關注公眾號,關注後微信會將帶場景值關注事件推送給開發者。

  2. 如果使用者已經關注公眾號,在使用者掃描後會自動進入會話,微信也會將帶場景值掃描事件推送給開發者。

取得參數的二維碼的過程包括兩步,先建立二維碼ticket,然後憑藉ticket到指定URL換取二維碼。

建立二維碼ticket

每次建立二維碼ticket需要提供一個開發者自行設定的參數(scene_id),分別介紹臨時二維碼和永久二維碼的建立二維碼ticket過程。

臨時二維碼請求說明

http请求方式: POST
URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKENPOST数据格式:json
POST数据例子:{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}

#永久二維碼請求說明

http请求方式: POST
URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKENPOST数据格式:json
POST数据例子:{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}

 

參數說明

##說明#expire_seconds該二維碼有效時間,以秒為單位。 最大不超過1800。
參數

action_name

二維碼類型,QR_SCENE為暫存,QR_LIMIT_SCENE為永久

action_info

#二維碼詳細資料

scene_id場景值ID,臨時二維碼時為32位元整數,永久二維碼時最大值為1000#
{"ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA==","expire_seconds":1800}
回傳說明 正確的Json回傳結果:
 

參數

說明

ticket

所取得的二維碼ticket,憑藉此ticket可以在有效時間內換取二維碼。

expire_seconds

二維碼的有效時間,以秒為單位。最大不超過1800。

錯誤的Json回傳範例:

{"errcode":40013,"errmsg":"invalid appid"}

 

全域回傳碼說明

使用網頁偵錯工具調試此介面

透過ticket換取二維碼

#取得二維碼ticket後,開發者可用ticket換取二維碼圖片。請注意,本介面無須登入態即可呼叫。

請求說明

HTTP GET请求(请使用https协议)
https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

回傳說明

ticket正確情況下,http 回傳碼是200,是一張圖片,可以直接展示或下載。

HTTP頭(範例)如下:

###
Accept-Ranges:bytes
Cache-control:max-age=604800Connection:keep-alive
Content-Length:28026Content-Type:image/jpg
Date:Wed, 16 Oct 2013 06:37:10 GMT
Expires:Wed, 23 Oct 2013 14:37:10 +0800Server:nginx/1.4.1
######### ######錯誤情況下(如ticket非法)返回HTTP錯誤碼404。 ######三、具體實作###### 依然基於先前的機器人案例進行功能添加,直接看程式碼。 #########
/// <summary>
    /// 二维码管理者
    /// </summary>
    public class DimensionalCodeManager
    {
        /// <summary>
        /// 临时二维码地址
        /// </summary>
        /// 使用string.format时,报:字符串格式错误,因为其中有{
        //private const string TEMP_URL = "{\"expire_seconds\": 1800, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": {0}}}}";
        /// <summary>
        /// 解决办法,将原有字符串中的一个{用两个{代替
        /// </summary>
        private const string TEMP_JSON_DATA = "{{\"expire_seconds\": 1800, \"action_name\": \"QR_SCENE\", \"action_info\": {{\"scene\": {{\"scene_id\": {0}}}}}}}";
        /// <summary>
        /// 永久二维码地址
        /// </summary>
        private const string PERMANENT_URL = "{{\"action_name\": \"QR_LIMIT_SCENE\", \"action_info\": {{\"scene\": {{\"scene_id\": {0}}}}}}}";
        /// <summary>
        /// 获取ticket的URL
        /// </summary>
        private const string GET_TICKET_URL = " https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}";
        /// <summary>
        /// 获取二维码URL
        /// </summary>
        private const string GET_CODE_URL = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}";
        /// <summary>
        /// 根据场景ID获取ticket
        /// </summary>
        /// <param>场景ID
        /// <param>是否是临时二维码
        /// <returns></returns>
        private static string GetTicket(int sceneID, bool isTemp)
        {
            string result = null;
            string data = string.Empty;
            if (isTemp)
            {
                data = string.Format(TEMP_JSON_DATA, sceneID.ToString());
            }
            else
            {
                if (sceneID > 0 && sceneID 
        /// 创建临时二维码
        /// 
        /// <param>场景id,int类型
        /// <returns></returns>
        public static string GenerateTemp(int sceneID)
        {
            string ticket = GetTicket(sceneID,true);
            if (ticket == null)
            {
                return null;
            }

            return HttpUtility.GetData(string.Format(GET_CODE_URL, ticket));
        }
        /// <summary>
        /// 创建临时二维码
        /// </summary>
        /// <param>场景id,int类型
        /// <returns></returns>
        public static string GeneratePermanent(int sceneID)
        {
            string ticket = GetTicket(sceneID, false);
            if (ticket == null)
            {
                return null;
            }

            return HttpUtility.GetData(string.Format(GET_CODE_URL, ticket));
        }
    }
######### ######更多微信大眾平台開發取得個性二維碼 相關文章請追蹤PHP中文網! ###
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。