【发布时间】:2014-01-17 23:04:45
【问题描述】:
我正在尝试通过 Stripe Payments 的发布请求接收 webhook。处理它的java方法如下所示:
@ResponseBody
@RequestMapping( consumes="application/json",
produces="application/json",
method=RequestMethod.POST,
value="stripeWebhookEndpoint")
public String stripeWebhookEndpoint(Event event){
logger.info("\n\n" + event.toString());
logger.info("\n\n" + event.getId());
return null;
}
但 Stripe 事件 总是返回所有空值:
<com.stripe.model.Event@315899720 id=null> JSON: {
"id": null,
"type": null,
"user_id": null,
"livemode": null,
"created": null,
"data": null,
"pending_webhooks": null
}
如果方法接收一个字符串,并使用@RequestBody:
@ResponseBody
@RequestMapping( consumes="application/json",
produces="application/json",
method=RequestMethod.POST,
value="stripeWebhookEndpoint")
public String stripeWebhookEndpoint(@RequestBody String json){
logger.info(json);
return null;
}
在这里,它打印没有空值的 json。这是正在打印的请求的一部分:
{
"created": 1326853478,
"livemode": false,
"id": "evt_00000000000000",
"type": "charge.succeeded",
"object": "event",
"request": null,
"data": {
"object": {
"id": "ch_00000000000000",
"object": "charge",
"created": 1389985862,
"livemode": false,
"paid": true,
"amount": 2995,
"currency": "usd",
...
}
但是使用带有 Stripe Event 参数的 @RequestBody 会给出 400: bad syntax。
那么为什么我不能把正确的类型,一个Stripe Event,作为参数呢?
【问题讨论】:
-
谢谢你的提问,但是可以从条纹中点击
localhosturl吗?
标签: java json rest stripe-payments webhooks