Я пытаюсь получить webhook через почтовый запрос от Stripe Payments. Метод Java для обработки выглядит следующим образом:Как получить Webhook из Stripe в 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;
}
Но нашивки событие всегда возвращается со всеми нулевыми значениями:
<[email protected] 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",
...
}
Но использование @RequestBody с параметром нашивки Event дает 400: плохой синтаксис.
Так почему я не могу взять правильный тип, Stripe Event, как параметр?
Благодарим за вопрос, но его можно использовать для удаления 'localhost' url from stripe? –