微信 API --- 常用功能 API
utils/wechatAPI.py
import json
import requests
appid = "wx08c4435aae60c7bc"
secret = "e14a6639624360d227e289b45a0cd1cf"
def getAccessToken():
"""
获取 access_token
:return: str
"""
url = "https://api.weixin.qq.com/cgi-bin/token"
params = {
"grant_type": "client_credential",
"appid": appid,
"secret": secret
}
res = requests.get(url, params=params)
if res.status_code == 200:
return json.loads(res.text)["access_token"]
else:
return ''
def getOpenId(js_code):
"""
获取 openId
:param js_code: 用户调用 wx.login()后返回的 code
:return: str
"""
url = "https://api.weixin.qq.com/sns/jscode2session"
params = {
"appid": appid,
"secret": secret,
"js_code": js_code,
"grant_type": "authorization_code"
}
res = requests.get(url, params=params)
if res.status_code == 200:
return json.loads(res.text)["openid"]
else:
return {"openid": ''}
def getPhoneNumber(code, openid=None):
"""
获取用户真实手机号
:param access_token: getAccessToken() 返回的 access_token
:param code: 前端调用 getPhoneNumber() 返回的 code
:param openid: 非必填
:return: {'errcode': 0, 'errmsg': 'ok', 'phone_info': {'phoneNumber': '17600000000', 'purePhoneNumber': '17600000000', 'countryCode': '86', 'watermark': {'timestamp': 1719580669, 'appid': 'wx08c4435aae60c7bc'}}}
"""
access_token = getAccessToken()
url = f"https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token={access_token}"
data = {
"code": code
}
res = requests.post(url, json=data)
if res.status_code == 200:
return json.loads(res.text)
else:
return {}
print(getPhoneNumber("b4ffcac170b75f1e66fb6d43e13de034d037d89b8ee909ddcd39960e6c9edd9e"))
python防脱发技巧

浙公网安备 33010602011771号