2016-04-06 9 views
0

Stripe on Grails(2.5.1)からテストWebフックを取得しようとしています。 ngrokを実行しているローカルマシン上のブラウザのURLに直接行くと、コントローラメソッドokを実行するURLmappingsの行をセットアップしました。しかし、コントローラにストライペイペイロードを取得することはできませんか?ありがとう!GrailsのコントローラへのStripe Webhooksの送信

//UrlMappings.groovy 
class UrlMappings { 

    static mappings = { 

    "/stripe-demo" (controller: 'charge', action: 'respond') 

    "/$controller/$action?/$id?(.$format)?"{ 
     constraints { 
      // apply constraints here 
     } 
    } 


    "/"(view:"/index") 
    "500"(view:'/error') 


    } 
} 



//Controller 
package stripe.demo 

class ChargeController { 

def respond(String payload){ 

//capture the payload sent by Stripe and do something, also respond with 200. 

} 

    } 

答えて

1

ストライプウェブフックデータには、それが動作しませんのような文字列にそれをデータバインディングrequest.JSONに入っています。ここでは例です:

class ChargeController { 
    def webHook() { 
     if(request.JSON) { 
      // do something with it, eg: 
      switch(request.JSON.type) { } 
     } 
     render '' // sends nothing back but a http 200 
    } 
} 

そして

+0

(そうlocalhostの文句を言わない仕事をストライプするためにアクセス可能でなければならない、注意してください)https://example.com/charge/webHookにrequest.JSON先端をありがとうウェブフックを設定!あなたはwebhookをexample.comに設定することについて何を意味しているのですか? (私はngrokを使用しており、localhost:8080に転送しているので、おそらくngrokが正しく転送されていないということが考えられます)。 –

+0

example.comは実際のドメインを使用していますが、 curl 'curl -H" Content-Typeで直接フックを投稿することができます:application/json "-d '{webookdatahere}" ' – erichelgeson

+0

Ahh ok。ありがとう!私はそれをしなければならないと思う。現在、ngrok画面で302エラーが表示されるので、それ以外の場合はcurlオプションを使用して解決してください。どうもありがとうございます! –

関連する問題