簡體   English   中英

Stripe API - 基於元數據的搜索

[英]Stripe API - Search Based on Metadata

我有一個與 Stripe 深度集成的應用程序。 我的平台偶爾會向連接的帳戶收費,並且我將有關這些收費的信息存儲在收費本身的元數據中。

我想將此信息顯示回連接的帳戶,因此我使用收費服務列出收費。 但是,我想根據一些元數據鍵/值對過濾該列表,這樣我就不必每次都為每個連接的帳戶列出所有費用。

有沒有聰明的方法來做到這一點?

不支持基於元數據的過濾。

由於您是跨關聯帳戶執行此操作,因此更好的方法是將費用 ID 和元數據存儲在您的終端上,這樣您就不必列出費用並進行分頁查找特定的元數據。

Stripe 最近添加了允許按元數據搜索的搜索 API 目前,它沒有 .NET / C# 集成,但您可以使用 HTTP 直接調用查詢:

他們文檔中的示例:

curl https://api.stripe.com/v1/search/charges \
  -u sk_test_daHanKyJOCiXCeBsa65biLML00wylimZ8S: \
  --data-urlencode "query=metadata['key']:'value'" \
  -H "Stripe-Version: 2020-08-27;search_api_beta=v1" \
  -G

我能夠使用 ChargeCreateOptions object 的“TransferGroup”屬性來完成此操作。 我基本上將 TransferGroup 屬性設置為每個連接帳戶的唯一值,然后我可以稍后查詢。

創造電荷

//THERE IS NO ID IN THE REQUEST OPTIONS BECAUSE
//WE ARE USING THE PLATFORM
var requestOptions = new RequestOptions()
{
  ApiKey = {API Key}
};

//CHARGE OPTIONS
var chargeOptions = new ChargeCreateOptions
{
  Amount = {AMOUNT},
  Currency = "usd",
  Description = $"Platform Charge",
  SourceId = {StripeId},
  Metadata = {MetaData},
  TransferGroup = {Unique String For Each Connected Account}
};

//CREAT AND RETURN THE CHARGE
var chargeService = new ChargeService();
return chargeService.Create(chargeOptions, requestOptions);

查詢基於轉移組的平台收費

    public List<Charge> StripePlatformCharges(string apiKey, int days, string transferGroup)
    {
        try
        {
            RequestOptions requestOptions = new RequestOptions()
            {
                ApiKey = apiKey
            };

            ChargeListOptions chargeListOptions = new ChargeListOptions()
            {
                CreatedRange = new DateRangeOptions()
                {
                    GreaterThanOrEqual = DateTime.Now.AddDays(-days)
                },
                TransferGroup = transferGroup
            };

            ChargeService chargeService = new ChargeService();
            return chargeService.List(chargeListOptions, requestOptions).ToList();
        }
        catch (Exception ex)
        {
            throw new Exception("Error getting stripe charges from the platform", ex);
        }
    }

Stripe 最近發布了一個搜索 API,它提供按元數據過濾某些資源(包括費用)的功能。 文檔位於https://stripe.com/docs/search

暫無
暫無

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

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