日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python制作微信个人二维码_Python实现 | 微信带参数的二维码

發布時間:2024/9/30 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python制作微信个人二维码_Python实现 | 微信带参数的二维码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微信運營越來越多了,這種帶參數二維碼的使用場景還挺多的,但是網上的實現大都是PHP啥的,還不想寫PHP的我只好用Python實現一下了。

關于帶參二維碼的介紹,記得先看官網:生成帶參數的二維碼。

先大體看看介紹

目前有2種類型的二維碼:1、臨時二維碼,是有過期時間的,最長可以設置為在二維碼生成后的30天(即2592000秒)后過期,但能夠生成較多數量。臨時二維碼主要用于帳號綁定等不要求二維碼永久保存的業務場景

2、永久二維碼,是無過期時間的,但數量較少(目前為最多10萬個)。永久二維碼主要用于適用于帳號綁定、用戶來源統計等場景。

用戶掃描帶場景值二維碼時,可能推送以下兩種事件:1、如果用戶還未關注公眾號,則用戶可以關注公眾號,關注后微信會將帶場景值關注事件推送給開發者。

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

總結一句,就是生成的二維碼本身有一個獨特的scene_id,掃描這個碼,后臺可以獲得先關的標簽對,也就是后臺會獲得以下數據:帶參二維碼返回的數據

好啦,我們先來看如何生成帶scene_id的二維碼,而后臺的處理事件,我們之后再來看,因為我剛剛才為此買了一個域名,結果實名+備案要好幾天,暴風哭泣。

先來說一下基本流程:從服務號的管理處獲得AppID和AppSecret,具體可以看獲取AccessToken。

根據AppID和AppSecret來構造Post請求,獲得Access Token

根據Access Token構造Post請求,獲得Ticket

用Ticket獲得需要的二維碼

獲得AccessToken

我們直接來看代碼,沒怎么做封裝:

import urllib

import urllib.request

import json

from urllib import parse, request

記得要有appid 和 appsecret

appid = '這里放你的appid'

secret = '這里放你的appsecret'

def token_url(appid, secret):

return "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"%(appid, secret)

獲得accessToken函數

def get_access_token(appid, secret):

access_token_url = token_url(appid, secret)

f = urllib.request(access_token_url)

json_string = f.read()

return json.loads(json_string)['access_token']

現在是開始獲取

access_token_url = token_url(appid, secret)

f = urllib.request.urlopen(access_token_url)

json_string = f.read()

access_token = json.loads(json_string)['access_token']

好啦,現在有accessToken了

現在來獲取Ticket

傳入accessToken來構造Ticket_url

def get_ticket_url(access_token):

url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=%s" %(access_token)

return url

ticket_url = get_ticket_url(access_token)

構造Post請求的參數,這個官網的介紹很清楚,其中scene_id是自己隨意設置的數字,這個數據是在用戶掃描二維碼之后,告訴你被掃描的二維碼是哪個

body = {"expire_seconds":604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}

記得要對post數據進行encode,不然會報錯

json_data = json.dumps(body).encode(encoding='utf-8')

已經構造好啦,現在來獲取所ticket和二維碼啦

req = request.Request(url=ticket_url, data=json_data)

res = request.urlopen(req).read()

ticket_string = json.loads(res)['ticket']

def exchange_by_ticket(ticket_string):

ticket = ticket_string

exchange_by_ticker_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=%s" % (ticket)

return exchange_by_ticker_url

exchange_by_ticker_url = exchange_by_ticket(ticket_string)

就能夠收到所需要的二維碼啦,??ヽ(°▽°)ノ?,之后的話,就要寫服務器來如何響應用戶的掃描啦。

原理是這樣的:當用戶掃描了帶參數的二維碼之后,會返回一個參數列表給微信

這個參數列表就包含scene_id,這樣你就知道他掃描的是哪個二維碼

微信將那個參數列表發送到你提前設置好的url服務器

你寫的程序對這個參數列表進行相應,并將相應的反應信息發送給微信

微信再將數據發送給用戶

之后我會繼續實現的。

總結

以上是生活随笔為你收集整理的python制作微信个人二维码_Python实现 | 微信带参数的二维码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。