gpt4 book ai didi

go - 无法从 Stripe 获取卡片品牌

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:58 24 4
gpt4 key购买 nike

func (s *Service) CreateNewCreditCard(user *models.User, creditCardRequest *CreditCardRequest) (error) {

userID := string(user.ID)
customer, err := s.stripe_a.CreateUserID(creditCardRequest.StripeToken, userID)

if err != nil {
return err
}

//TO DO - NOT BEING FILLED WITH DATA --> this needs to be added to the brand colom in the database
//customer.DefaultSource.Card.Brand

// Save to the DB
stripeCustomer := &models.StripeCustomer{
UserID: util.IntOrNull(int64(user.ID)),
CustomerID: util.StringOrNull(customer.ID),
Last4: util.StringOrNull(creditCardRequest.Last4),
Brand: util.StringOrNull("VISA"),
}
if err := s.db.Create(stripeCustomer).Error; err != nil {
return err
}

return nil
}

我正在尝试为我插入数据库的客户获取默认卡的品牌,但这总是会因为空指针而导致崩溃。

虽然我不明白为什么。在 Stripe 控制台中,客户有一张显示“VISA”的默认卡

添加日志:

[2017-06-14 04:26:40]  [18.51ms]  SELECT * FROM "orders"  WHERE "orders"."deleted_at" IS NULL AND (("user_id" IN ('2'))) ORDER BY "orders"."id" ASC
2017/06/14 04:26:40 Requesting POST api.stripe.com/v1/customers
2017/06/14 04:26:41 [C] [asm_amd64.s:514] the request url is /v1/credit-cards
2017/06/14 04:26:41 [C] [asm_amd64.s:514] Handler crashed with error runtime error: invalid memory address or nil pointer dereference
2017/06/14 04:26:41 [C] [asm_amd64.s:514] /usr/local/go/src/runtime/asm_amd64.s:514
2017/06/14 04:26:41 [C] [asm_amd64.s:514] /usr/local/go/src/runtime/panic.go:489
2017/06/14 04:26:41 [C] [asm_amd64.s:514] /usr/local/go/src/runtime/panic.go:63
2017/06/14 04:26:41 [C] [asm_amd64.s:514] /usr/local/go/src/runtime/signal_unix.go:290

这是 CreateUserID 函数:

func (a *Adapter) CreateUserID(stripeToken string, userID string) (*stripe.Customer, error) {
// Assign secret key from configuration to Stripe
stripe.Key = a.cnf.Stripe.SecretKey

// Create a Customer:
customerParams := &stripe.CustomerParams{
Desc: userID,
}
customerParams.SetSource(stripeToken)

customer, _ := customer.New(customerParams)

return customer, nil
}

如何让它询问卡的品牌?

最佳答案

根据 the Stripe documentation , default_card 字段默认不展开。您可以通过将此行添加到 CreateUserID 来扩展它:

customerParams.Expand("default_source")

关于go - 无法从 Stripe 获取卡片品牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com