2016-04-16 3 views
3

Невозможно понять, как это сделать. Я тестировал следующее, которое не работает;Обновление информации о кредитной карте Stripe API - Java

String stripeCustomerID = "123"; 
Customer cu = Customer.retrieve(stripeCustomerID); 
cu.setDefaultSource(token); 
Map<String, Object> updateParams = new HashMap<String, Object>(); 
updateParams.put("default_source", token); 
enter code here`cu.update(updateParams); 

Это единственное место, где документация по Stripe API не получила ответа.

Кто-нибудь реализовал это ранее?

С уважением, Майкл

ответ

3

Ответа на этот вопрос Matthew;

Customer cu = Customer.retrieve(stripeCustomerID); 
Map<String, Object> updateParams = new HashMap<String, Object>(); 
updateParams.put("source", token); 
cu.update(updateParams); 
3

default_source ожидает карты идентификатор не знак ID. Таким образом, вам необходимо либо:

1) Добавьте карту клиента, а затем обновить default_source свойство
или
2) Вы можете установить source свойство клиента к маркеру. Установив source, вы добавите новую карту, удалите старый файл default_source, а затем установите новый по умолчанию, все в том же вызове API.

+0

Вариант 2 звучит лучше всего, как и все сразу. У клиента нет свойства «source», хотя есть только «источники», которые являются ExternalAccountCollection, которые, как я думаю, по сути являются списком всех карт. Я проверил, можно ли добавить токен к любому из них, и я ничего не могу заметить? Просто отправка маркера была бы идеальной. –

+0

Источник доступен через метод customer.update. https://stripe.com/docs/api#update_customer-source –

+0

Отлично, спасибо Мэтью. Работаю сейчас. Раньше я использовал «default_source» вместо «source». –

Смежные вопросы