C#Stripe使用默认付款方式创建客户无效

时间:2019-12-26 16:51:21

标签: stripe-payments

在我的工作流程中,我正在使用有效的付款方式创建一个新客户,并将其设置为默认值(适用于订阅计费)

基于文档,看来如果我使用的是PaymentsIntent,则需要在InvoiceSettings内设置DefaultPaymentMethod,并且IntelliSense会按预期匹配所有内容。 https://stripe.com/docs/api/customers/create#create_customer-invoice_settings-default_payment_method

当我实际创建options对象(甚至没有进行Create调用)时,出现以下错误

  

{System.NullReferenceException:对象引用未设置为   对象的实例。在... [下面有问题的代码]

var customerOptions = new CustomerCreateOptions
{
    Email = user.Email,
    Name = user.FirstName + ' ' + user.LastName,
    PaymentMethod = model.payment_method,
    InvoiceSettings =
    {
        DefaultPaymentMethod = model.payment_method
    }
};

如果我删除了InvoiceSettings参数,则一切工作正常,除非未将其付款方式设置为默认付款方式。我也尝试在DefaultPaymentMethod中使用null,同样的错误。

在创建客户期间,如何将其付款方式设置为默认付款方式?

1 个答案:

答案 0 :(得分:1)

您需要初始化CustomerInvoiceSettingsOptions的实例以作为InvoiceSettings传递,您可以使用以下方法进行操作:

var customerOptions = new CustomerCreateOptions
{
    Email = user.Email,
    Name = user.FirstName + ' ' + user.LastName,
    PaymentMethod = model.payment_method,
    InvoiceSettings = new CustomerInvoiceSettingsOptions
    {
        DefaultPaymentMethod = model.payment_method
    }
};