Я пытаюсь создать подписку в тестовой среде, используя stripe-go
, но получаю сообщение об ошибке This customer has no attached payment source
. Я явно добавляю способ оплаты, присоединяю его к клиенту и даже устанавливаю его по умолчанию, но все равно получаю эту ошибку. Вот мой источник
customerParams := &stripe.CustomerParams{Email: &request.Email}
newCustomer, _ := a.stripeClient.Customers.New(customerParams)
params := &stripe.PaymentMethodParams{
Type: stripe.String(string(stripe.PaymentMethodTypeCard)),
Card: &stripe.PaymentMethodCardParams{
Number: stripe.String("4242424242424242"),
ExpMonth: stripe.String("10"),
ExpYear: stripe.String("2020"),
CVC: stripe.String("123"),
},
}
p, _ := a.stripeClient.PaymentMethods.New(params)
paymentAttachParams := &stripe.PaymentMethodAttachParams{ Customer: &newCustomer.ID}
a.stripeClient.PaymentMethods.Attach(p.ID, paymentAttachParams)
updateCustomerParams := &stripe.CustomerParams{}
updateCustomerParams.AddMetadata("invoice_settings.default_payment_method", p.ID)
a.stripeClient.Customers.Update(
newCustomer.ID,
updateCustomerParams,
)
invoiceParams := &stripe.InvoiceItemParams{
Customer: &newCustomer.ID,
Currency: stripe.String(string(stripe.CurrencyUSD)),
Description: stripe.String("One-time setup fee"),
Amount: stripe.Int64(100),
}
a.stripeClient.InvoiceItems.New(invoiceParams)
subscriptionParams := &stripe.SubscriptionParams{
Customer: &newCustomer.ID,
Items: []*stripe.SubscriptionItemsParams{
{
Plan: stripe.String("plan_xxxx"),
},
},
}
s, err := a.stripeClient.Subscriptions.New(subscriptionParams)
Я также пытаюсь добавить разовую плату за установку вместе с подпиской, но я не думаю, что это должно быть проблемой.