我正在尝试从Grails(2.5.1)上的Stripe捕获一个测试Web挂钩。我在URLmappings中设置了一行,当直接转到运行ngrok的本地计算机上的浏览器中的URL时,将执行ok方法。我似乎无法将Stripe有效负载获取到 Controller 吗?谢谢!
//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.
}
}
最佳答案
strip webhook数据以request.JSON
形式出现,因此将其数据绑定(bind)到这样的字符串将无法正常工作。这是一个例子:
class ChargeController {
def webHook() {
if(request.JSON) {
// do something with it, eg:
switch(request.JSON.type) { }
}
render '' // sends nothing back but a http 200
}
}
然后将webhook设置为https://example.com/charge/webHook(注意, strip 必须可访问,因此localhost无法正常工作)
关于grails - 将 strip 化Webhooks发送到Grails中的 Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36463459/