如何通过Stripe API将已上传文件关联至客户、产品等对象?
如何把Stripe上传的文件关联到客户、产品、订阅等对象
先明确:用Stripe API上传文件后拿到的file_id,要绑定到其他对象,核心就是在对应对象的创建/更新接口里,把file_id传到该对象支持的文件关联字段里就行。下面是几个常用对象的具体操作方式:
关联到客户
客户对象主要有两种关联方式:
- 身份验证类文件(要求上传时
purpose设为identity_document),可以传到verification.document字段 - 任意文件都可以通过元数据(metadata)来记录关联关系
更新客户的身份验证文件示例
curl https://api.stripe.com/v1/customers/cus_xxxxxx \ -u sk_test_***: \ -d "verification[document][front]"="file_xxxxxx"
用元数据自定义关联示例
如果只是需要存个关联记录,用元数据最灵活:
curl https://api.stripe.com/v1/customers/cus_xxxxxx \ -u sk_test_***: \ -d "metadata[attached_file]"="file_xxxxxx"
关联到产品
产品支持直接关联产品图片(要求上传时purpose设为product_image),同样也可以用元数据关联其他文件:
添加产品图片示例
curl https://api.stripe.com/v1/products/prod_xxxxxx \ -u sk_test_***: \ -d "images[]"="file_xxxxxx"
元数据关联示例
curl https://api.stripe.com/v1/products/prod_xxxxxx \ -u sk_test_***: \ -d "metadata[product_manual]"="file_xxxxxx"
关联到订阅
订阅本身没有专门的文件关联字段,一般通过两种方式处理:
- 直接给订阅加元数据记录
file_id - 把文件关联到订阅所属的客户对象上
订阅元数据关联示例
curl https://api.stripe.com/v1/subscriptions/sub_xxxxxx \ -u sk_test_***: \ -d "metadata[subscription_agreement]"="file_xxxxxx"
重要提醒
- 文件的
purpose决定了它能关联到哪些字段:比如dispute_evidence类型的文件只能绑到争议(Dispute)对象的证据字段,没法直接绑到客户或产品上; - 所有关联操作都要用到对应对象的创建或更新API;
- 元数据是通用方案,所有Stripe对象都支持,适合用来记录各种自定义的文件关联关系。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

