zy阿二 2023-02-14 13:40 采纳率: 25%
浏览 135
已结题

Python解决steam手机确认的问题

关于Steam手机令牌上确认交易或确认市场出售的库的使用示例、注释。在github上有很多steam相关的开源库。但是由于本人英语水平较差,研究了好久了只解决了登录。目前发送交易和在市场上出售,需要用steam APP进行二次确认,我找不到对应的方法或者说找到了不会用。

from steampy.guard import generate_confirmation_key

def generate_confirmation_key(identity_secret: str, tag: str, timestamp: int = int(time.time())) -> bytes:
    buffer = struct.pack('>Q', timestamp) + tag.encode('ascii')
    return base64.b64encode(hmac.new(base64.b64decode(identity_secret), buffer, digestmod=sha1).digest())

可能我需要的功能就是这串代码,但是我不知道传参tag是什么。并且返回return的东西也不知道怎么用。
我的理解一、是确认一个交易需要提供3个参数:
参数1.一个key/cookies,也就是identity_secret。
参数2.待确认的交易ID,但是tag很明显不是。 (或者只需要参数1,返回所有待确认信息,然后再传需要确认的交易ID和 确认与否)
参数3. 二选一 ,确认 / 取消。

但是我的2个理解貌似都没找到对应的方法。

  • 写回答

10条回答 默认 最新

  • Yang2023. 2023-02-14 13:59
    关注

    根据Steam官方文档,我们可以发现,tag参数可以是任何字符串,只要在确认交易时,Steam APP中带有相应的信息,即可完成确认。所以我们可以根据自己的需求,将所需要传递的信息作为tag参数进行传递,然后在Steam APP中查看相应信息进行确认。
    修正代码如下:

    from steampy.guard import generate_confirmation_key
     
    def generate_confirmation_key(identity_secret: str, tag: str, transaction_id: str, timestamp: int = int(time.time())) -> bytes:
        buffer = struct.pack('>Q', timestamp) + tag.encode('ascii') + transaction_id.encode('ascii')
        return base64.b64encode(hmac.new(base64.b64decode(identity_secret), buffer, digestmod=sha1).digest())
    

    以上内容来自ChatGPT

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月16日
  • 修改了问题 2月14日
  • 修改了问题 2月14日
  • 修改了问题 2月14日
  • 展开全部

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。