web-dev-qa-db-ja.com

ストライプ-既存の顧客に新しいカードを追加します

既存の顧客にカードを追加する必要があります。私がやったことは次のとおりです。

1.ユーザー送信からトークンを取得する

card_token = request.POST('stripeToken')

2.顧客を取得する

customer =  stripe.Customer.retrieve('cus_xxxxxxxxxx')

3.この顧客にカードを追加します

customer.Cards.create(card=card_token)

というのは、顧客がメソッドカードを持っていないように見えるので、私が問題を抱えているのですが、他の人がそれをやったのを見たことがあります。

どうすればこれを達成できますか?

30
chenxi17

2015-02-18 AP​​Iバージョン以降を使用している場合は、 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'
29
koopajah

例(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());
0
CamelTM

ここにいくつかの言語とプラットフォームの例があります。

https://stripe.com/docs/api#create_card

幸運を