使用plaid-python获取客户交易数据:请求协助生成Public Token与Access Token
别着急,我帮你把Plaid这两个令牌的生成流程拆解得明明白白,其实核心就是分两步:先通过用户授权拿到Public Token,再把它换成后端能用的Access Token,一步步来:
第一步:生成Public Token(用户授权环节)
Public Token是用户完成Plaid授权后返回的一次性短期令牌,它的生成依赖Plaid Link(Plaid的用户授权交互组件),具体步骤如下:
- 首先,你需要在后端生成一个Link Token,用来初始化Plaid Link组件。用你已有的plaid-python客户端调用接口即可:
# 生成Link Token的请求 request = plaid.LinkTokenCreateRequest( user={"client_user_id": "your_unique_user_id"}, # 替换成你系统里的用户唯一标识 client_name="Your Application Name", products=["transactions"], # 明确你要访问的产品,这里是交易数据 country_codes=["US"], # 根据你的业务调整国家码 language="en" ) response = client.link_token_create(request) link_token = response["link_token"] - 拿到Link Token后,你需要在前端集成Plaid Link(或者用Plaid Sandbox的测试工具):
- 如果是测试,直接在Plaid Sandbox里用这个Link Token启动链接流程,使用测试账号(比如
user_good/pass_good)完成授权,流程结束后就能拿到public_token。 - 如果是实际开发,把Link Token传给前端,用Plaid的前端SDK初始化Link,用户完成银行账号授权后,Link会通过回调返回
public_token。
- 如果是测试,直接在Plaid Sandbox里用这个Link Token启动链接流程,使用测试账号(比如
第二步:用Public Token兑换Access Token(后端兑换环节)
Public Token只能用一次,你需要在后端把它兑换成长期有效的Access Token,这才是你后续调用交易数据接口的核心凭证:
- 用plaid-python调用兑换接口,传入拿到的Public Token:
# 兑换Public Token为Access Token request = plaid.ItemPublicTokenExchangeRequest( public_token="your_public_token_from_link" # 替换成实际拿到的Public Token ) response = client.item_public_token_exchange(request) access_token = response["access_token"] item_id = response["item_id"] # 这个是关联用户银行账户的标识,也可以保存下来 - 兑换成功后,把
access_token妥善存储(比如存在你的数据库里),后续调用交易数据接口时,就用这个令牌来请求:# 示例:获取交易数据 request = plaid.TransactionsGetRequest( access_token=access_token, start_date="2024-01-01", end_date="2024-06-01" ) transactions_response = client.transactions_get(request)
简单总结一下:Public Token是前端授权后传递的“临时通行证”,Access Token是后端长期使用的“正式密钥”,整个流程既保证了用户数据的安全,也让你的后端能稳定访问用户的交易数据。
内容的提问来源于stack exchange,提问作者Mier
相关产品推荐
相关产品推荐

