既存の顧客にカードを追加する必要があります。私がやったことは次のとおりです。
card_token = request.POST('stripeToken')
customer = stripe.Customer.retrieve('cus_xxxxxxxxxx')
customer.Cards.create(card=card_token)
#というのは、顧客がメソッドカードを持っていないように見えるので、私が問題を抱えているのですが、他の人がそれをやったのを見たことがあります。
どうすればこれを達成できますか?
2015-02-18
APIバージョン以降を使用している場合は、 changelog でわかるように、cards
属性がsources
に変更されています。
Create Card API のドキュメントには、次のコードが表示されています。
customer = stripe.Customer.retrieve('cus_xxxxxxxxxx')
customer.sources.create(card=card_token)
APIバージョンはダッシュボードのAPIキー settings で確認できます。また、Stripe-Version
ヘッダーを使用してAPIリクエストを古いAPIバージョンに強制し、cards
バージョン管理 ドキュメントで説明されているように引き続き機能します:
stripe.api_version = '2015-01-26'
例(customerId-cus_xxxxxxxxxx):
Stripe.apiKey = stripeApiKey;
Customer customer = Customer.retrieve(customerId);
Map<String, Object> cardParams = new HashMap<String, Object>();
cardParams.put("number", "4242424242424242");
cardParams.put("exp_month", "12");
cardParams.put("exp_year", "2018");
cardParams.put("cvc", "314");
Map<String, Object> tokenParams = new HashMap<String, Object>();
tokenParams.put("card", cardParams);
Token cardToken = Token.create(tokenParams);
Map<String, Object> sourceParams = new HashMap<String, Object>();
sourceParams.put("source", cardToken.getId()); //?
Card source = (Card) customer.getSources().create(sourceParams);
logger.info("Card created: " + source.toString());