chargify http://www.chargify.comと統合しており、MVC4/C# サーバーで Chargify からの Webhook を処理する必要があります。Chargify は (ルビー) の方法で POST データを送信します。サブオブジェクトは次のように角括弧で区切られます。
POST /1ffaj2f1 HTTP/1.1
X-Chargify-Webhook-Signature: 526ccfd9677668674eaa6ba5d447e93a
X-Chargify-Webhook-Id: 11238622
User-Agent: Ruby
Host: requestb.in
Content-Type: application/x-www-form-urlencoded
Content-Length: 5159
Connection: close
Accept-Encoding: gzip, deflate
Accept: */*; q=0.5, application/xml
id=11238622&event=payment_success&payload[subscription][activated_at]=2013-05-22%2001%3A25%3A20%20-0400&payload[subscription][balance_in_cents]=0&...
問題は、.NET 側では、既定のモデル バインダーが角かっこ[
]
を好まず、代わりに、サブオブジェクトが次のようなドット表記で区切られることを期待していることです。a.b.c.d=value
モデル バインダーを機能させるにはどのようなオプションがありますか? 次のことが考えられます。
- 委任ハンドラーでリクエストにフックし、req ボディを読み取り、[] をドット (.) に置き換えます。ただし、これは少なくとも危険に感じます
- 動作するカスタム モデル バインダーを作成し
[]
ます。できれば、デフォルト ハンドラーに委任できることを願っています。これについてどうすればいいのかわかりませんが、いくつかの考えを聞きたいです。 formcollection
アクションでパラメータを使用するだけです。フォーム コレクション キーを処理して、キーに基づいて再帰的なディクショナリを形成します。これは、文字列全体を処理する必要があることも意味します (日付、ID など)。
最善の方法は何ですか、どうすればよいですか。