2017-09-02 17 views
1

チャージエンティティの応答からストライプカスタマーのcustomer_idを取得しようとしています。しかし、レスポンスは顧客のIDを返すわけではありません。ストライピングの料金レスポンスから得意先IDを取得するにはどうすればよいですか?

&stripe.Charge JSON: { 
    "id": "ch_1AxWbTFytruJp2FXW6iuRd1X", 
    "object": "charge", 
    "amount": 100, 
    "amount_refunded": 0, 
    "application": null, 
    "application_fee": null, 
    "balance_transaction": "txn_17JOXKFytruJp2FXS4XNisQd", 
    "captured": false, 
    "created": 1504339423, 
    "currency": "usd", 
    "customer": null, 
    "description": "My First Test Charge (created for API docs)", 
    "destination": null, 
    "dispute": null, 
    "failure_code": null, 
    "failure_message": null, 
    "fraud_details": { 
    }, 
    "invoice": null, 
    "livemode": false, 
    "metadata": { 
    }, 
    "on_behalf_of": null, 
    "order": null, 
    "outcome": null, 
    "paid": true, 
    "receipt_email": null, 
    "receipt_number": null, 
    "refunded": false, 
    "refunds": { 
    "object": "list", 
    "data": [ 

    ], 
    "has_more": false, 
    "total_count": 0, 
    "url": "/v1/charges/ch_1AxWbTFytruJp2FXW6iuRd1X/refunds" 
    }, 
    "review": null, 
    "shipping": null, 
    "source": { 
    "id": "card_1AxWPmFytruJp2FXw4m0V0fN", 
    "object": "card", 
    "address_city": null, 
    "address_country": null, 
    "address_line1": null, 
    "address_line1_check": null, 
    "address_line2": null, 
    "address_state": null, 
    "address_zip": "10001", 
    "address_zip_check": "unchecked", 
    "brand": "Visa", 
    "country": "US", 
    "customer": null, 
    "cvc_check": "unchecked", 
    "dynamic_last4": null, 
    "exp_month": 4, 
    "exp_year": 2024, 
    "fingerprint": "sNtyd9sZ2vA6o4IM", 
    "funding": "credit", 
    "last4": "4242", 
    "metadata": { 
    }, 
    "name": "Mandeep", 
    "tokenization_method": null 
    }, 
    "source_transfer": null, 
    "statement_descriptor": null, 
    "status": "succeeded", 
    "transfer_group": null 
} 

ただし、nullのオブジェクト内には顧客フィールドがあります。誰もがなぜ私はこのnullを得ている私に教えてくださいできますか?

私がしようとしているのは、顧客が匿名でサイト上で匿名で予約できるシステムを作り、顧客が登録して予約の総額を請求する予約を作成することです。顧客のストライプアカウントIDとカードIDを把握する必要があります。問題は、顧客を作成してからカードIDを取得できない場合ですが、顧客に請求する際に顧客IDを取得できません。

カスタマーの応答:

&stripe.Customer JSON: { 
    "id": "cus_BKAxGZre2HCNIU", 
    "object": "customer", 
    "account_balance": 0, 
    "created": 1504339424, 
    "currency": "usd", 
    "default_source": null, 
    "delinquent": false, 
    "description": null, 
    "discount": null, 
    "email": null, 
    "livemode": false, 
    "metadata": { 
    }, 
    "shipping": null, 
    "sources": { 
    "object": "list", 
    "data": [ 

    ], 
    "has_more": false, 
    "total_count": 0, 
    "url": "/v1/customers/cus_BKAxGZre2HCNIU/sources" 
    }, 
    "subscriptions": { 
    "object": "list", 
    "data": [ 

    ], 
    "has_more": false, 
    "total_count": 0, 
    "url": "/v1/customers/cus_BKAxGZre2HCNIU/subscriptions" 
    } 
} 

答えて

2

あなたはcard_idにアクセスすることができます。

for _, data := range customer.Sources.Values{ 
     card_id = data.ID 
    } 

    fmt.Println(card_id) 

私はそれを把握するために、ほぼ1日を過ごします。実際、顧客構造(ストライプパッケージの下)には埋め込みタイプを持つフィールドがあり、このようなフィールドは別のファイルの別の構造にさらに接続されています。したがって、上記のような構造フィールドにアクセスする階層があります。

これがあなたの問題を解決することを願っています。

ありがとうございます!

+0

ありがとう@Aman、あなたは多くの時間を節約しました。 :) – MKB

2

あなたはクレジットカードのみのトークンを使用してchargeを作成し、何のストライプの顧客にはあなたしかいない関連する顧客との支払いを作成し、作成されません。 APIがcustomer: nullを返すのは正常です。

クレジットカードを請求する代わりに、に新しい顧客を請求する必要があります。 顧客のカード

  • STEP 2を保存するためにクレジットカードのトークンを渡し、新しい顧客を作成します:

    • STEP 1: は、あなたのバックエンドのコードでは、あなたは2つの段階で支払いを扱うことができる顧客を充電し、 STEP 1 API呼び出しによって返された顧客IDを使用します。

    このようにすると、顧客のデータに保存されているクレジットカードで請求します。詳細については

    、こちらをご確認ください:https://stripe.com/docs/quickstart#saving-card-information

    それは理にかなっていますか? (Golangに)次のコードを使用して新しい顧客を作成しながら、

  • 関連する問題