Можно ли ограничить сборы Stripe по метаданным?

У меня есть разбитый на страницы список расходов:

stripelist = Stripe::Charge.list({limit: 100})

stripelist.each do |payment|
    if payment["metadata"]["ss_registration"]
        striperecords << payment if pendingrecs.include? payment.metadata.portal_payment_id
    end
end

while stripelist.has_more do 
    stripelist = Stripe::Charge.list({limit: 100, starting_after: stripelist.data.last.id})
    stripelist.each do |payment|
        if payment["metadata"]["ss_registration"]
            striperecords << payment if pendingrecs.include? payment.metadata.portal_payment_id
        end
    end
end

Проблема в том, что мне приходится снимать все расходы, а затем фильтровать результаты в Ruby, что требует затрат времени на обработку. Есть ли способ фильтровать по метаданным?... сделать что-то вроде этого в начале:

stripelist = Stripe::Charge.list({limit: 100}, metadata: '{ss_registration}')

2 ответа

Решение

К сожалению, вы не можете перечислить Сборы по их метаданным. Прямо сейчас единственные параметры, по которым вы можете перечислять Charges, перечислены здесь: https://stripe.com/docs/api/charges/list?lang=ruby

Но ваш код можно немного упростить, используя функцию автоматической разбивки на страницы Stripe; описано здесь: https://stripe.com/docs/api/pagination/auto?lang=ruby.

С автоматической разбивкой на страницы ваш код может быть примерно таким:

charges = Stripe::Charge.list({ limit: 100 })

charges.auto_paging_each do |charge|
  if charge["metadata"]["ss_registration"]
    striperecords << charge if pendingrecs.include? charge.metadata.portal_payment_id
  end
end

Strive Development рассмотрит возможность добавления метаданных в качестве критерия оплаты. Вот их ответ на мой запрос:

Благодарим вас за то, что обратились к нам и оставили свой отзыв об улучшении наших расходов на API. Мы знаем, что это важно для бизнеса.

Мы постоянно работаем над улучшением Stripe для наших пользователей, поэтому очень важно услышать ваш отзыв. Мы понимаем, что вы хотите, чтобы наша команда разработчиков разработала код для ограничения метаданных в дополнение к группе передачи, и наша команда разработчиков рассмотрит это.

Если у вас есть вопросы, свяжитесь с нами!

Другие вопросы по тегам