Tôi đang bối rối về việc tại sao tài liệu Stripe của gợi ý sự kiện customer.subscription.updated
không bị sa thải khi tôi tin rằng nó nên:Sự kiện customer.subscription.updated có tăng lên khi đăng ký được gia hạn không?
- Một Sọc
subscription
đối tượng có các thuộc tínhcurrent_period_start
vàcurrent_period_end
đó sẽ được cập nhật bất cứ khi nào khách hàng thành công trả một thuê bao của hoá đơn (https://stripe.com/docs/api#subscriptions) các tài liệu cho sự kiện
customer.subscription.updated
nói rằng nó ...Óc curs bất cứ khi nào đăng ký thay đổi. Ví dụ sẽ bao gồm chuyển đổi từ một kế hoạch này sang gói khác hoặc chuyển trạng thái từ thử nghiệm sang hoạt động.
... có nghĩa là sự kiện sẽ được tăng lên nếu giá trị
current_period_start
vàcurrent_period_end
thay đổi, nhưng không xác nhận nếu có hoặc không có trong trường hợp này.Tuy nhiên trang web bên thứ ba này tuyên bố rằng trang web không được nêu lên khi thực hiện gia hạn thành công (https://www.masteringmodernpayments.com/stripe-webhook-event-cheatsheet#8).
Nhưng nâng cao sự kiện này chỉ có ý nghĩa ...
- Và chắc chắn nếu ứng dụng chỉ cần thiết để theo dõi một loại sự kiện duy nhất (tức là
customer.subscription.updated
) sau đó nó sẽ đơn giản hóa mã chương trình mà không cần phải cũng theo dõiinvoice.payment_succeeded
,invoice.created
vàcharge.succeeded
. - Tuy nhiên, tài liệu cho Vòng đời đăng ký (https://stripe.com/docs/subscriptions/lifecycle) hoàn toàn không đề cập đến sự kiện
customer.subscription.updated
nào cả.
Nó có vẻ kỳ lạ khi một sự kiện thích hợp như vậy không được nâng lên khi cần. Tài liệu cũng thực sự không nói khi các giá trị current_period_end
và current_period_start
được cập nhật, hoặc giới hạn tiện ích của chúng. Vì vậy, trong đơn của tôi, sau khi nhận được sự kiện invoice.payment_succeeded
, làm cách nào để mã chương trình của tôi xác định thời điểm đăng ký của khách hàng sẽ kết thúc tiếp theo?
Tôi sẽ trân trọng thách thức tuyên bố "Khi hóa đơn.payment_succeeded xảy ra, ở đó bạn phải cập nhật thông tin về phía bạn (ví dụ: thời gian đăng ký) "- IMHO quyết định cách xử lý các sự kiện này tùy thuộc vào hành vi ứng dụng bạn đang cố gắng đạt được. đăng ký ở bên cạnh tôi khi Stripe cho tôi biết đăng ký đã được cập nhật (sự kiện customer.subscription.updated chứa đối tượng đăng ký). Sự kiện invoice.payment_succeeded chứa đối tượng hóa đơn –
Bạn thích hợp với 'customer.subscription.updated' –
Đồng ý với @SimonCurd, điều này khiến tôi rất bối rối khi bắt đầu, tôi đã quyết định chỉ sửa đổi đăng ký khi customer.subscription.updated bị sa thải - không có nơi nào khác. – nickdnk