我创建了https://stripe.com/docs/billing/subscriptions/elements中描述的订阅,但现在我想让用户选择更改订阅计划并使用另一种支付方式,例如3d Secure卡。但是,如果我更新订阅以获取新的支付意图的客户端机密,如下所示:
func (c *Client) UpdateSubscription(s *models.Subscription) (*models.Subscription, error) {
sps := &stripe.SubscriptionParams{
DefaultPaymentMethod: stripe.String(s.PaymentMethodId),
CancelAtPeriodEnd: stripe.Bool(false),
ProrationBehavior: stripe.String(string(stripe.SubscriptionProrationBehaviorAlwaysInvoice)),
}
if s.CreatePaymentIntent {
s.PaymentBehavior = "allow_incomplete"
sps.PaymentBehavior = stripe.String(s.PaymentBehavior)
sps.AddExpand("latest_invoice.payment_intent")
} else if s.ItemID != "" {
sps.Items = []*stripe.SubscriptionItemsParams{
{Price: stripe.String(s.PriceID)},
{ID: stripe.String(s.ItemID), Deleted: stripe.Bool(true)},
}
}
ss, err := sub.Update(s.ID, sps)
if ss.LatestInvoice != nil && ss.LatestInvoice.PaymentIntent != nil {
s.PaymentIntentClientSecret = ss.LatestInvoice.PaymentIntent.ClientSecret
}
return s, err
}
订阅的PaymentIntentClientSecret
与订阅相同,这意味着订阅已被处理。Stripe“confirm card”API抛出错误payment\u intent\u unexpected\u state
https://stripe.com/docs/error-codes/payment-intent-unexpected-state这可能是因为我之前使用了支付意图来创建订阅。然而,我仍然需要一个新的支付意图来授权新卡。
您收到这些错误的PaymentIntent的状态是什么?
看起来您正在正确更新订阅的价格和付款方法,并为此分段计算创建新发票。如果是这种情况,发票可能会在更新时自动获得付款。因此,发生此错误可能是因为您试图确认已成功向客户收取费用的PaymentIntent。
我认为当你在功能中获得更新的订阅对象时,最好检查LatestInvoice的PaymentIntent的状态。
如果状态为成功
,您可以简单地向客户发送更新订阅成功的消息。
- 如果状态为
requires_action
,您应该将PaymentIntent的客户端机密发送回您的客户端并调用handleCardAction[1]以允许您的客户解决可能需要采取的任何操作(3DS Auth等) - 如果状态为
requires_payment_method
则新卡被拒绝,您应该让您的客户输入新的信用卡信息以尝试再次更新订阅的PaymentMethod。
[1]https://stripe.com/docs/js/payment_intents/handle_card_action
我注意到,当购买个人产品与订阅产品冲突时,添加到购物车。
我正在开发一个web应用程序,我遵守REST API标准。我正在搜索REST API的最佳实践订阅和付款。 当新用户订阅“PRO计划”时,用户需要支付计划费用,这是一个交易。 对于升级、取消或更新计划,是否应设置put:和或其他endpoint?
我正在使用stripe-php库实现stripe订阅,遵循这个https://stripe.com/docs/billing/subscriptions/fixed-price文档 使用失败的付款方式模拟客户订阅,在发票状态打开的情况下成功生成条带订阅对象。 问题是在我的后端实现重试发票时,我的代码如下: 在stripe dashboard上,客户默认付款方式已成功更新为最新的付款方式(有效卡),
我四处搜索,找到了关于如何在woocommerce中添加产品的链接,但关于如何使用自定义php片段更新或添加订阅记录的链接不多。
支付宝小程序my.requestSubscribeMessage,我已经调起订阅,点击“好的”,可接口返回的是“用户未订单,消息发送失败”,这可能是哪里的问题?
通过 BaaS SDK 提供的 wx.BaaS.order(OBJECT) 方法, 可查询到交易的详细信息。典型的使用场景为: 调用 wx.BaaS.pay(object) 发起支付, 在成功回调中获取到 transactionID, 在要路由到新的页面时带上此 ID, 在新页面的 onLoad 方法中获取到该 ID, 从而使用此 ID 获取交易的详细信息。 OBJECT 参数说明 参数 类型 必