2016-11-19 4 views
2

私は最近、Stripe APIを学びました...私はゆっくりとそこに着きますが、このメタデータ情報で少しのスピードバンプになってきました。ストライプ:作成時にサブスクリプションにメタデータを追加

私が達成しようとしているのは、サブスクリプションと顧客が作成されたときにサブスクリプションにメタデータを追加することです。

これは、顧客&サブスクリプションを作成するには、元のスクリプトは次のとおりです。

$customer = \Stripe\Customer::create(array(
       'email' => $_POST['stripeEmail'], 
       'source' => $_POST['stripeToken'], 
       'customer' => $randomID, 
       'plan' => $item 
      )); 

そして、私は、さらに情報を追加するために、複数の領域があることがわかりますドキュメントの

?例:

Stripe\StripeObject JSON: { 
    "id": "sub_9aZ6q72UQs7664", 
    "object": "subscription", 
    "application_fee_percent": null, 
    "cancel_at_period_end": false, 
    "canceled_at": null, 
    "created": 1479520145, 
    "current_period_end": 1482112145, 
    "current_period_start": 1479520145, 
    "customer": "XXXXXXX", 
    "discount": null, 
    "ended_at": null, 
    "livemode": false, 
    "metadata": { 
    }, 
    "plan": { 
    "id": "AdFree", 
    "object": "plan", 
    "amount": 700, 
    "created": 1479261871, 
    "currency": "gbp", 
    "interval": "month", 
    "interval_count": 1, 
    "livemode": false, 
    "metadata": { 
    }, 
    "name": "AdFree Hosting", 
    "statement_descriptor": "WEBSITE", 
    "trial_period_days": null 
    }, 
    "quantity": 1, 
    "start": 1479520145, 
    "status": "active", 
    "tax_percent": null, 
    "trial_end": null, 
    "trial_start": null 
} 

私が興味を持っているのは、2つのmetadata要素です。私は考え出した最初のものは、私はそれが"plan" (subscription)に追加されますように、第2のメタデータタグに情報を追加するために探していますが、そう...

$customer = \Stripe\Customer::create(array(
       'email' => $_POST['stripeEmail'], 
       'source' => $_POST['stripeToken'], 
       'customer' => $randomID, 
       'plan' => $item, 
       'metadata' => array("test1" => "test2", "testa" => "testb") 
      )); 

のように追加することができCustomer metadataです。

私は周りをチェックして答えを見つけることができないようです。誰かが私を正しい方向に押し込むことができると思っています。

私はまた、ドキュメントを読んできたし、ドキュメントはここで見つけることができますが、そこに関連するすべてのヘルプを見つけることができません。

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

答えて

6

私は最終的に二つの別々のリクエストを作成することによって、これを達成するために管理。 1つのリクエストを使用して同じアクションを実行する方法があるようには見えません。顧客とサブスクリプションを分離する必要があります。

$randomID = mt_rand(10000000, 99999999);  

$customer = \Stripe\Customer::create(array(
     'email' => $_POST['stripeEmail'], 
     'source' => $_POST['stripeToken'], 
     'customer' => $randomID 
)); 

$subscription = \Stripe\Subscription::create(array(
     'customer' => $randomID, 
     'plan' => $item, 
     'metadata' => array("website_ref" => $website_ref, "user_id" => $user_id) 
)); 
+1

ニース、ありがとう。顧客IDの乱数を生成するのではなく、Stripeがこれを処理できるようにすることができます。顧客を作成するときにIDを指定しないで、サブスクリプションを作成するときに、 '$ customer [ 'id'] ' – gregdev

関連する問題