1. 程式人生 > >微信公眾平臺中臨時二維碼的scene_id為32位非0整型

微信公眾平臺中臨時二維碼的scene_id為32位非0整型

原文: 微信公眾平臺中臨時二維碼的scene_id為32位非0整型

                                       微信公眾平臺中臨時二維碼的scene_id為32位非0整型

     一、  帶引數的二維碼

             微信公眾平臺提供了生成帶引數二維碼的介面。使用該介面可以獲得多個帶不同場景值的二維碼,使用者掃描後,公眾號可以接收到事件推送

             使用者掃描帶場景值二維碼時,可能推送以下兩種事件:
               1).如果使用者還未關注公眾號,則使用者可以關注公眾號,關注後微信會將帶場景值關注事件推送給開發者。
               2).如果使用者已經關注公眾號,在使用者掃描後會自動進入會話,微信也會將帶場景值掃描事件推送給開發者。

           1.對微信推送的事件去重

              微信伺服器在五秒內收不到響應會斷掉連線,並且重新發起請求,總共重試三次。

             假如伺服器無法保證在五秒內處理並回復,可以直接回復空串,微信伺服器不會對此作任何處理,並且不會發起重試。

            採用FromUserName + CreateTime對推送事件去重

    二、分類

         帶引數的二維碼有兩種,分別是:臨時二維碼和永久二維碼

              1.臨時二維碼:是有過期時間的

              2.永久二維碼:是無過期時間的

   三、臨時二維碼的scene_id為32位非0整型

        在<<微信公眾平臺開發者文件>>中,指出:

            在生成帶引數的二維碼的介面中有一個引數scene_id,是場景值ID,臨時二維碼時為32位非0整型,永久二維碼時最大值為100000

     

          我在生成臨時二維碼的時候,傳的scene_id為“88888888888888888888888888888888”(即scene_id 32個8),但是我在掃描臨時二維碼的時候,發現公眾號推送的事件中EventKey為"qrscene_4294967295"(使用者還沒關注該公眾號)或者是EventKey為“4294967295“(使用者已經關注該公眾號),即:得到的 EventKey和我生成該臨時二維碼時的scene_id是不一樣的

         原來"臨時二維碼的scene_id為32位非0整型"是32位的二進位制數,即最大值是2的32次方減1也就是4294967295