Skip to content

tsinglinrain/WeChatPay_to_Notion

Repository files navigation

WeChatPay_to_Notion

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

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

Bill2Notion_zh_cn
Bill2Notion_Workflow_zh_cn
导入效果静态图
visualization_static

其他说明

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

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

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

实现思路

微信或支付宝软件中手动点击获取账单,随后微信或支付宝把账单下载链接发送至邮箱,解压密码发送至微信或支付宝。 然后我在把微信或者支付宝的解压密码,自己邮箱发送给自己邮箱。 随后本项目中代码实现从邮箱中下载压缩包,解压,复制转移,格式化成标准csv文件,数据处理,最后利用Notion API上传。 对于用户而言,配置好.env中的各种参数, 最后运行本项目的main.py函数,就可实现账单上传。

快速开始

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

  • 内部集成认证流程设置

    Notion Integration

    可以参考官方文档Internal integration auth flow set-up

    键入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
  • 配置环境

    • python版本 >= 3.8(粗略的, 未测试过更低版本)
    • IDE, 如VSCode, PyCharm等
    • Docker(可选, 如果使用Docker部署, 暂时没上线)
  • 下载本项目

    注意本项目没有release, 需要自行下载所有代码。

    git clone https://github.com/tsinglinrain/WeChatPay_to_Notion.git

    或者

    下载本项目代码,右上角点击绿色的"code"按钮,选择"Download ZIP"下载压缩包,然后解压。

  • 安装所需库

    进入文件夹,注意如果是压缩包一定是解压过的。

    pip install -r requirements.txt
  • 环境变量配置: 使用环境变量配置

    本项目现在支持环境变量配置,更适合Docker部署:

    1. 复制环境变量模板文件

      windows下复制粘贴.env.template,把文件名改成.env

      或者Linux下

      cp .env.template .env
    2. 编辑 .env 文件,填入您的配置信息

      [email protected]
      EMAIL_PASSWORD=your_email_password
      EMAIL_IMAP_URL=imap.example.com
      NOTION_DATABASE_ID=your_notion_database_id
      NOTION_TOKEN=your_notion_token
    3. data_source_id 获取

      请注意,Notion在2025年9月3日发布了新版本的Notion API, 新增data source的理念。简单来说, 现在database数据库的概念是能够包含多个数据源data source的容器, data source不能单独存在,必须依赖database这个容器来展现。 所以我们现在需要对数据源data source进行内容的填充。 具体获取方式请先参看官方链接

      示意图如下 Notion_Integration_step8 Notion_Integration_step8
  • 账单发送到邮箱后,会有消息告知密码。请复制此密码,自己邮箱发送密码给自己格式必须如下:(110110只是示例,图片中的也只是示例,输入自己的微信支付那个服务号发过来的和支付宝服务消息发过来解压密码)

    wechatpay解压密码110110
    alipay解压密码110110
    
    格式具体示例 alipay_password

    即自己发给自己且标题必须形为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

运行

本地Python运行

  • 运行main.py

    python main.py

    然后根据提示选择,输入0表示导入微信支付账单,输入1表示导入支付宝账单。输入2代表全部。暂时不支持异步,后续会支持的。

Docker运行(暂时没有上线)

  • 使用 docker compose(推荐)

    # 1. 确保已配置 .env 文件
    cp .env.template .env
    # 编辑 .env 文件填入配置信息
    
    # 2. 构建并运行
    docker compose up --build
  • 直接使用 Docker

    # 构建镜像
    docker build -t wechatpay-to-notion .
    
    # 运行容器
    docker run --rm \
      -e EMAIL_USERNAME="[email protected]" \
      -e EMAIL_PASSWORD="your_email_password" \
      -e EMAIL_IMAP_URL="imap.example.com" \
      -e NOTION_DATA_SOURCE_ID="your_notion_data_source_id" \
      -e NOTION_TOKEN="your_notion_token" \
      -v $(pwd)/attachment:/app/attachment \
      -v $(pwd)/bill_csv_raw:/app/bill_csv_raw \
      wechatpay-to-notion

自定义

pass

下一步计划

  • Linux环境下自动化

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

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

Star History

Star History Chart

About

Notion API记账, billing2Notion|将导出的微信支付宝付款账单再次导入至Notion(注意:没有使用WeChat Pay, Alipay官方API)

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages