簡體   English   中英

條紋; 使用新訂閱創建客戶時如何獲取訂閱 ID

[英]Stripe; how to get subscriptionId when creating a customer with a new subscription

我正在創建一個新客戶並將他們添加到一個訂閱中,如下所示:

StripeConfiguration.SetApiKey(StripeData.ApiKey);
var customerService = new CustomerService();
var myCustomer = new CustomerCreateOptions
    {
         Email = stripeEmail,
         Source = stripeToken,
         Plan = StripeData.MonthlySubscriptionPlanId
     };
Customer stripeCustomer = customerService.Create(myCustomer);

然后我曾經能夠做到這一點:

myLocalUser.StripeCustomerId = stripeCustomer.Id;
myLocalUser.StripeSubscriptionId = stripeCustomer.Subscriptions.Data[0]?.Id;

但是現在 API 沒有返回客戶的訂閱,因此第二行失敗

我現在不得不用這個丑陋的代碼再次調用 API 來獲取客戶的訂閱 ID:

                    if (stripeCustomer.Subscriptions != null)
                    {
                        user.StripeSubscriptionId = stripeCustomer.Subscriptions.Data[0]?.Id;
                        
                    }
                    else
                    {
                        //get subscriptionId
                        var cust = customerService.Get(stripeCustomer.Id, new CustomerGetOptions
                        {
                            Expand = new System.Collections.Generic.List<string> { "subscriptions" }
                        });
                        if (cust.Subscriptions.Any())
                        {
                            stripeSubscriptionId = cust.Subscriptions.First().Id;
                        }
                    }

CustomerService.Create() 沒有與 Get() 方法相同的 Expand 參數選項......

這是意料之中的,因為訂閱不再默認包含在客戶 object 中,除非您從API 版本 2020-08-27開始擴展它們。

仍然可以創建具有來源和計划的客戶(盡管不再是推薦的集成路徑,因為您可能會遇到 3DS 和稅率問題),但由於您使用的是較新的 API 版本,您將無法獲得subscriptions列表. 如果可以的話,您應該更新為通過他們自己的 API創建訂閱。

但是,如果您仍然想使用這個舊的集成路徑,您仍然可以在客戶創建調用中獲取訂閱,您只需要在創建時擴展訂閱:

var customerService = new CustomerService();
var myCustomer = new CustomerCreateOptions
{
  Email = stripeEmail,
  Source = stripeToken,
  Plan = StripeData.MonthlySubscriptionPlanId
};
myCustomer.AddExpand("subscriptions");
Customer stripeCustomer = customerService.Create(myCustomer);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM