Сопоставление запросов Spring с Paypal - PullRequest
1 голос
/ 18 ноября 2011

Для обратного URL кажется, что вы должны определить весь URL следующим образом:

String returnURL = "http://localhost:8080/appName/shopping/confirmorder";

Теперь у меня проблема с отображением запроса:

    @RequestMapping(value = "/shopping/confirmorder?token={token}&PayerID={payerID}", method = RequestMethod.GET)
public String doGet(@PathVariable("token") String token, @PathVariable("payerID") String payerID,
        HttpServletRequest request) {

    // do stuff
}

Контроллер по какой-то причине никогда не вызывается?

Окончательный returnURL, возвращаемый из Paypal, выглядит следующим образом:

http://localhost:8080/appName/shopping/confirmorder?token=EC-4...G&PayerID=A...W

Обратите внимание, что идентификаторы были отредактированы.

1 Ответ

1 голос
/ 18 ноября 2011

Если у вас есть две переменные пути с именами token и payerID, тогда сигнатура метода должна быть

public void doGet(@PathVariable("token") String token, 
                  @PathVariable("payerID") String token, 
                  HttpServletRequest request, 
                  HttpServletResponse response)

Как вы ожидали, что Spring поместит эти две строки в один параметр optionтипа int?

См. http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-uri-templates

Кроме того, PathVariable используется для привязки частей пути запроса к аргументам метода.В вашем случае у вас есть параметры запроса.Таким образом, вы должны использовать @RequestParam:

@RequestMapping(value = "/shopping/confirmorder", method = RequestMethod.GET)
public void doGet(@RequestParam("token") String token, 
                  @RequestParam("PayerID") String token, 
                  HttpServletRequest request, 
                  HttpServletResponse response)

См. http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestparam

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...