Ошибка выдачи Stripe API при попытке удалить карту

Я пытаюсь удалить карту из Stripe с помощью библиотеки ruby, но сталкиваюсь со следующей ошибкой.

undefined method `delete' for Stripe::Customer:Class

Вот строка в моем коде, которая вызывает ошибку

customer = Stripe::Customer.delete(@user.stripe_id)

Похоже, что в классе Customer нет метода удаления, но в документах говорится, что он есть.

Вот раздел документации Stripe, посвященный удалению карточек. https://stripe.com/docs/api/ruby#delete_card

Как видите, мой код идентичен строке в документации, за исключением того, откуда берется идентификатор клиента.

Кроме того, я заметил ошибку в документации, в которой

customer = Stripe::Customer.delete({CARD_ID})

Должно быть,

customer = Stripe::Customer.delete({CUSTOMER_ID})

Я также пытался использовать идентификатор карты, чтобы быть уверенным, и он генерирует ту же ошибку.

Если у кого-то есть идеи, они будут очень признательны.

РЕДАКТИРОВАТЬ: до этого момента я использовал полосу, а другие методы, такие как Stripe::Customer.retrieve(), работали просто отлично.

РЕДАКТИРОВАТЬ 2: я использую версию драгоценного камня 1.8.4, которая кажется последней версией.


person Mike    schedule 23.07.2013    source источник
comment
Да, Stripe по-прежнему не позволяет клиенту удалить номер своей карты, я считаю это неприемлемым.   -  person Gras Double    schedule 23.02.2016
comment
На самом деле это возможно, см. этот сообщение в блоге и соответствующий API. Тем не менее, веб-сайты, использующие Stripe, с которыми я сталкивался до сих пор, не заботятся о реализации этой функции.   -  person Gras Double    schedule 23.02.2016


Ответы (1)


Кажется, в документах есть две ошибки, вы пробовали это вместо этого:

customer = Stripe::Customer.retrieve({CUSTOMER_ID})
customer.cards.retrieve({CARD_ID}).delete()
person maxm    schedule 23.07.2013
comment
Я получаю *** NoMethodError Exception: undefined method 'delete' for #<Stripe::ListObject:0x007fb62e33afb8> при попытке удалить карты - person davidtingsu; 23.07.2013
comment
Исправить: card = customer.cards.retrieve({CARD_ID}); card.delete - person davidtingsu; 23.07.2013
comment
Спасибо, парни! Я использовал версию в обновленных документах, и это сработало! - person Mike; 24.07.2013
comment
Сейчас card = customer.sources.retrieve({CARD_ID}) - person Maxim Zubarev; 27.05.2016