2

私が立ち往生している基本的な質問:

次の JSON を含む POST リクエストを受け取った場合:

JSON: {
  "type": "invoice.payment_succeeded",
  "pending_webhooks": 0,
  "created": 1357936579,
  "object": "event",
  "livemode": false,
  "id": "evt_15PLdo9JdZ2yN4",
  "data": {
    "object": {
      "subtotal": 3500,
      "attempted": true,
      "paid": true,
      "amount_due": 3500,
      "closed": true,
      "period_end": 1357936578,
      "lines": {
        "url": "/v1/invoices/in_15PLg6oL0IiYYj/lines",
        "count": 1,
        "object": "list",
        "data": [
          {
            "type": "subscription",
            "period": {
              "end": 1360614978,
              "start": 1357936578
            },
            "livemode": false,
            "object": "line_item",
            "proration": false,
            "amount": 3500,
            "quantity": 1,
            "plan": {
              "interval_count": 1,
              "livemode": false,
              "object": "plan",
              "amount": 3500,
              "trial_period_days": null,
              "name": "forecast3",
              "currency": "usd",
              "id": "forecast3",
              "interval": "month"
            },
            "id": "su_15PLVebFWecrdQ",
            "currency": "usd",
            "description": null
          }
        ]
      },
      "starting_balance": 0,
      "charge": "ch_15PLYLUiVusQDH",
      "object": "invoice",
      "total": 3500,
      "ending_balance": 0,
      "date": 1357936578,
      "period_start": 1357936087,
      "attempt_count": 0,
      "discount": null,
      "livemode": false,
      "id": "in_15PLg6oL0IiYYj",
      "next_payment_attempt": null,
      "customer": "cus_15OrEWGsLN3CkP",
      "currency": "usd"
    }
  }
}

それを解析してパラメーターにアクセスするにはどうすればよいですか"id": "in_15PLg6oL0IiYYj"

ありがとうございました!!

注: これは、Stripe Payment Processing 経由の Webhook からのものです。

私はこれのいくつかのバリエーションを試しましたが、円になっているようです:

# Parse JSON
event_data = JSON.parse(json)

# Get Invoice id
invoice_id = Stripe::Invoice.retrieve(event_data.data.object.id)
4

3 に答える 3

9

それ以外のevent_data.data.object.id

試してみてください:

event_data["data"]["object"]["id"]
于 2013-01-11T21:53:40.470 に答える
0

paramsハッシュでデータを受け取った場合、次のようになります。

logger.debug params["id"]

動作するはずです。

于 2013-01-11T21:49:08.607 に答える
0

それはRAW POST DATAであり、URL パラメータではありません

http://requestb.in/で生データを取得しているかどうかをクロスチェックできます

キーがないため、生データには params['id'] でアクセスできません

必要なデータには次の方法でアクセスできます

request.env["rack.input"].read
于 2014-07-26T11:57:26.453 に答える