我正在集成 stripe 以使用户能够订阅运送到美国和加拿大的实体产品。
我想使用 invoice.created
webhook 修改发票并根据送货地址添加运费。
根据 stripe 文档,问题是第一张发票会立即收费,这意味着我无法在第一次收费之前修改它,而我可以在后续收费中修改它。
如果是这样,那么我认为解决这个问题的唯一方法是为每个订阅间隔添加我们和加拿大的计划,例如 product-weekly-us
、product-monthly -us
, product-weekly-ca
, product-monthly-ca
而不仅仅是 product-monthly
, product -每周一次
运费将是静态的(没有订单项)并且是总运费的一部分。
编辑
所以从 koopajah
的回答中查看发票,这是我可以解决的问题(请确认):
- 为您的客户创建发票项目(待定发票项目)- 这是否不包括订阅的行项目?
- 为客户创建订阅(将那些待处理的发票项目添加到订阅的新发票中)- 这将触发
invoice.created
webhook,您必须检查并忽略它 - 会你必须跟踪发票号码? **编辑:哦等等!它会被关闭,所以你可以检查一下 :D ** - 所有后续发票都使用
invoice.created
webhook 修改未结发票
最佳答案
如果您想继续使用发票项目,您只需在第一个周期创建您的用户订阅之前创建一个。然后,在创建订阅后,将创建第一个发票并自动为您当前的客户提取发票项目。
然后您可以按照计划在 webhook 中创建下一个发票项目。
编辑: 这些步骤是这样的:
- 使用 Stripe token 创建客户
- 创建一个 Invoice Item对于此客户的运费(不是订阅的)
- 创建 subscription对于此客户,它会自动将第 2 步中创建的发票项目添加到总费用中
- 6.... 在 webhook“invoice.created”中检查发票是否已关闭,如果没有,则重复第 2 步并将当前发票标识符添加到
invoice
参数
- 6.... 在 webhook“invoice.created”中检查发票是否已关闭,如果没有,则重复第 2 步并将当前发票标识符添加到
关于stripe-payments - 使用 strip 将运费添加到第一个订阅发票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27288873/