我正在尝试从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/

10-13 08:55