Skip to content

Latest commit

 

History

History
148 lines (111 loc) · 6.36 KB

README.md

File metadata and controls

148 lines (111 loc) · 6.36 KB
Bill2NotionLogo

WeChat and Alipay bills are sent to emails, and email attachments are extracted and imported into Notion

微信和支付宝账单发送至邮箱,邮件提取附件导入Notion

Static Badge Static Badge Static Badge Static Badge Static Badge

[English] | [中文(繁體)]

Bill2Notion_zh_cn
Bill2Notion_zh_cn
项目具体偏向代码的流程图
Bill_to_Notion_excalidraw

其他说明

寻找相关记账的模板,配合使用效果更佳哦。

没有使用WeChat Pay以及Alipay的官方API)微信支付和支付宝官方API仅仅对商户开放使用,普通人目前无法使用。
详情点击:
简介-接口规则 | 微信支付商户平台文档中心
查询账单接口 - 支付宝文档中心 (alipay.com)

灵感来源于少数派这篇文章,感谢少数派提供的思路。

快速开始

wechatpay_bill aliapy_bill
  • 拷贝示例数据库,建议duplicate账单导入Notion模板,熟悉之后可自行修改

  • 自定义Notion Integration

    Notion Integration 键入`https://www.notion.so/profile/integrations` Notion_Integration_step1 Notion_Integration_step2 Notion_Integration_step3 Notion_Integration_step4 Notion_Integration_step5 Notion_Integration_step6 Notion_Integration_step7 Notion_Integration_step8
  • 下载本项目

  • 安装所需库

    pip install -r requirements.txt
  • 运行config_duplicate.py文件

  • 填写config_private.yaml文件,如下

    email_config:
      imap_url: "l3*********@163.com"
      password: "HZ************TG"
      username: "imap.163.com"
    
    notion_config:
      database_id: "c1a348********************4c7"  # 数据库ID
      token: "secret_OHvKVP*******************Lq" # token
    database_id details
    https://www.notion.so/tsinglin/68111a1sssssss487a884cafcd5333310c?v=3d0c405e7cae405599aed2fe0f5233cc
    
    database_id: 68111a1sssssss487a884cafcd5333310c
    
  • 账单发送到邮箱后,会有消息告知密码,请复制此密码,自己邮箱发送密码给自己,格式必须如下

    格式示例 Notion_Integration_step8

    即自己发给自己且标题必须形为alipay解压密码123456或者wechatpay解压密码123456,原因是代码规定如此,改了必报错。

    def get_passwd(self):
      # 检查邮件发件邮箱是否是自己的邮箱
      flag = False
      if self.from_addr == self.username:
          print("Subject,from get_passwd:", self.subject)
          if self.payment_platform == "alipay":
              if re.match("^alipay解压密码[0-9]{6}$", self.subject):
                  print("Subject:", self.subject)
                  self.paswd = self.subject[-6:]
                  print("Password:", self.paswd)
                  flag = True
          elif self.payment_platform == "wechatpay":
              if re.match("^wechatpay解压密码[0-9]{6}$", self.subject):
                  print("Subject:", self.subject)
                  self.paswd = self.subject[-6:]
                  print("Password:", self.paswd)
                  flag = True
      return flag
  • 运行main.py

自定义

pass

下一步计划

  • Linux环境下自动化

  • 导入成功后邮件返回提醒

  • 可以设置每月自动导出提醒

Star History

Star History Chart