我正在收集用户的付款信息,然后定期收费。
var paymentIntentCreateOptions = new PaymentIntentCreateOptions
{
Customer = customerId,
PaymentMethod = paymentMethodId,
Amount = 123400,
Currency = "usd",
OffSession = true,
Confirm = true,
};
var paymentIntentService = new PaymentIntentService();
PaymentIntent paymentIntent = paymentIntentService.Create(paymentIntentCreateOptions);
文档指出:
当付款尝试失败时,请求也会失败,并显示 402 HTTP 状态代码,并且 PaymentIntent 的状态为
。requires_payment_method
但是这段代码有什么作用呢?它会抛出异常吗?它返回 null 吗?我怎样才能找到失败的原因?
我很困惑为什么运行交易的这个非常重要的元素没有明确列出。
事实证明,处理付款时发生错误可能会导致以下两种情况之一。
可以将
PaymentIntent.Status
设置为successful
以外的值。其他潜在值可以包括 requires_payment_method
、requires_confirmation
、requires_action
、processing
、requires_capture
或 canceled
。
它可以抛出
StripeException
。对于付款方式被拒绝等情况,会抛出异常。
就我个人而言,我更希望以一致的方式处理所有错误。现在我的代码只是将
successful
以外的任何状态转换为异常。