我知道我不是第一个问这个问题的人,我可以在stackoverflow上发布几个链接来回答这个问题,但是我还没有看到我的问题在哪里得到了特别的解决。
所以,我有一个spring5框架restful控制器设置,这不是spring引导。
@PostMapping(value = "/webhook-endpoint")
public HttpStatus stripeWebhookEndpoint(
@RequestBody String stripeJsonEvent,
@RequestHeader("Stripe-Signature") String sigHeader)
{
System.out.println("stripeWebhookEndpoint: START: json = " + stripeJsonEvent);
return HttpStatus.OK;
}
从我看到的其他例子来看,这绝对是可行的。但在我的例子中,我得到一个http 400错误,如下所示:
[http-nio-8080-exec-7] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver -
Resolved [org.springframework.http.converter.HttpMessageNotReadableException:
JSON parse error: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token;
nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException:
Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
at [Source: (PushbackInputStream); line: 1, column: 1]]
我甚至尝试添加:consumes=“text/plain;application/json”和我得到相同的错误。如果我能得到json,那之后我就没事了。将有大量的例子来解析这个stripe事件。
当我有这样的配置时,它起作用了:
@requestbody对象stripejsonevent,然后我可以将json视为对象的一部分,但是我无法从对象强制转换为字符串。
我想这里需要补充的是,我正在使用stripecli创建对我的控制器的调用。使用stripecli,我做的第一件事就是创建侦听器:stripelisten——forward tolocalhost:8080/myapp/api/stripe/webhook-endpoint
在另一个终端窗口中,我做了:stripe trigger payment\u method.attached
所以,这就是我的错误。我将尝试从另一个rest客户机,如postman,看看是否得到相同的结果。我会继续玩下去,看看能不能想出另一个办法。
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!