我的代码如下:
def get_new_wx_xcxsign(params, session_key):
import hmac
import hashlib
import json
import time
""" 用户登录态signature签名算法
Args:
post_body - http POST的数据包体
session_key - 当前用户有效的session_key,参考auth.code2Session接口
Returns:
用户登录态签名signature
"""
need_sign_msg = params
signature = hmac.new(key=session_key.encode('utf-8'), msg=need_sign_msg.encode('utf-8'),
digestmod=hashlib.sha256).hexdigest()
return signature
new_kv_list = {'kv_list': [{'key': '1', 'value': 0}]}
session_key = 'fdsafasdfasdf=='
post_body = json.dumps(new_kv_list)
signature = self.get_new_wx_xcxsign(post_body, session_key)
url = "https://api.weixin.qq.com/wxa/setuserinteractivedata?access_token={0}&signature={1}&openid={2}" \
"&sig_method=hmac_sha256".format(access_token, signature, openid)
response = requests.post(url, new_kv_list)
auth_info = response.json() or {}