tsinglinrain / WechatPay_to_Notion

Notion API记账。将导出的微信付款账单再次导入至Notion,(注意,没有使用Wechat Pay的官方API)
https://tsinglin.notion.site/68951a1caaba487a884cafcd5086810c?v=3d0c405e7cae405599aed2fe0f5233cc
Apache License 2.0
10 stars 1 forks source link
notion-api wechat-pay

WechatPay_to_Notion

将导出的微信付款账单再次导入至Notion,(注意,没有使用Wechat Pay的官方API)

这是个人对于Notion API一个尝试,目前仍然作为练手项目,目前已经相对完善,但是完全可以使用
我自己就在使用,导入到Notion后利用数据库视图等便于管理支出情况。

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

其他说明

由于微信支付官方API仅仅对商户开放使用,普通人目前无法使用。详情点击
简介-接口规则 | 微信支付商户平台文档中心

所以只好先将账单导出,随后利用python语言,并借助Notion提供的API接口对其进行请求,最终将内容发送至Notion数据库。

灵感来源于少数派的这篇文章,但是他没有给出完整的代码。同时少数派写得比较早,但是没有随着Notion的API更新而继续更新。

进阶使用

请先阅读基本使用说明,随后点击阅读进阶指南

进阶指南

基本使用说明

1. Notion API申请

1.1 访问My integrations | Notion Developers

image-20230324213427619

1.2 点击New integration

简单填写Name,并且选择Associated workspace后下翻找到Submit并点击提交。

image-20230324214416578

点击show后,点击copy,复制好后作为备用。如果是win系统,使用时敲击键盘win+v,即可查看剪贴板内容。

image-20230324214659248

2. Notion数据库

2.1 创建数据库

你可以复制此模板进行参考。
请注意,如果你对于官方的请求模式并不熟悉,请不要编辑本模板;如果你需要自己设置,需要参考Introduction (notion.com),并对python代码进行相关修改。

2.2 引入integration

如下图所示,点击...Add connections,找到前面自己设置的integration,这里是点击记账

image-20230325202326631

点击confirm后,应当如图所示。

2.3 复制database id

在浏览器中找到自己的数据库,观察上面的网址,网址应当如下所示,
https://www.notion.so/tsinglin/68151a1caaca488a884cafcd5086810c?v=3d0c405e7cae406599eed2fe3f9233dc
复制tsinglin/?之间的内容,这就是database id

3. WeChat Pay账单的导出

打开微信,点击底下,点击服务,点击右上方钱包,点击右上角账单,点击右上角常见问题,点击左上角下载账单,点击用于个人对账,自己选择时间,输入支付密码和邮箱。请注意邮箱一定不能填错,否则容易造成隐私泄露。

收到邮件后也会受到微信官方发来的解压密码。

总之,最终得到一份格式为csv的文件。

4. python代码设置

4.1 下载本项目中所有文件

可以git下载,也可以直接下载本项目的压缩包,然后解压。

4.2 database idtoken填入

请将config.yaml复制并改成config_private.yaml,然后填入如下内容:

# 请将此config.yaml复制并重命名为config_private.yaml
database_id: "aaa121************"    # 数据库ID, 要填进去哦
token: "secret_Wa***********" # token, 记得自己填写

解释原因:

4.3 重命名

将微信账单的csv文件复制进入此文件夹下,并且将此csv文件重命名为wechat_raw.csv

解释原因:

  1. 代码中文件位置为相对路径,必须将微信账单文件与上述文件为同一文件夹下
  2. 代码中规定文件名称为wechat_raw.csv,必须重命名微信账单文件

4.4 运行程序

运行main.py即可。

4.5 观察运行结果

一般是出现成功

出现失败,需要单独检查,暂时还没有返回是哪一行出现失败,以后再修改(没想好怎么改)。

5. 下一步计划

  1. 不需要自己该名称,直接拖动进入文件夹后,运行main.py即可

  2. 对于有服务器的,或者可以用GitHub Action接收件邮件, 自动下载附件并解压得到csv文件

  3. 得到csv文件后便于后续操作

  4. 可以设置每月自动导出,发送至邮箱,随后执行自动化步骤,账单久能出现在Notion