收藏
回答

调setUserInteractiveData报invalid signature,如何处理?

我的代码如下:
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 {}


最后一次编辑于  2025-07-31
回答关注问题邀请回答
收藏
登录 后发表内容