如何发送数据作为发布请求并移动到spring mvc

时间:2017-07-24 14:41:32

标签: java angularjs http spring-mvc spring-security

我在Ui上有一个带角度js的spring mvc应用程序。

我在

中有以下要求

我从用户处获取详细信息(考虑产品,金额)

我需要将详细信息作为发布请求发送到支付网关,同时重定向到支付网关网站

现在我们将详细信息发送到基于角度js构建的UI,并且Ui向支付网关发送一个帖子请求,然后我们进入支付网关网站

由于我们向UI发送了大量敏感数据,因此我们希望在服务器端实现重定向到支付网关以及发布请求,以确保安全。

我无法使用spring mvc

中的控制器执行此操作

我尝试过以下方法

1]转发://网站名称(因为这不适用于应用程序之外的网址)

@RequestMapping(value="/serverRedirection",method = RequestMethod.GET)
    public String myMethod(HttpServletRequest request) {

        RechargeDto rechargeDto = new RechargeDto();
        rechargeDto.setAmount("500");
        rechargeDto.setProvider("AT");
        rechargeDto.setMobile("9892948061");
        logger.info("Entered recharge controller");
        String message = "Invalid from app";

        request.getSession().setAttribute("amount", rechargeDto.getAmount());
        request.getSession().setAttribute("mobile", rechargeDto.getMobile());
        request.getSession().setAttribute("provider", rechargeDto.getProvider());

        PauDto pauDto = rechargeService.passToPayu(Float.parseFloat(rechargeDto.getAmount()), 2l, "9898989898");
        request.setAttribute("key", pauDto.getKey());
        request.setAttribute("txnid", pauDto.getTxnid());
        request.setAttribute("service_provider", pauDto.getService_provider());
        request.setAttribute("firstname", pauDto.getFirstname());
        request.setAttribute("amount", pauDto.getAmount());


        return "forward:https://website";
    }

2]重定向(使用重定向属性和redirect://也没有帮助,因为应用程序被重定向到支付网关但没有发送数据(因为重定向不能用于转发请求)

   @RequestMapping(value="/serverRedirection",method = RequestMethod.GET)
    public String myMethod(RedirectAttributes  request,HttpServletRequest req) {

        RechargeDto rechargeDto = new RechargeDto();
        rechargeDto.setAmount("500");
        rechargeDto.setProvider("AT");
        rechargeDto.setMobile("9892948061");
        logger.info("Entered recharge controller");
        String message = "Invalid from app";


        PauDto pauDto = rechargeService.passToPayu(Float.parseFloat(rechargeDto.getAmount()), 2l, "9898989898");
        pauDto.getService_provider());
        request.addAttribute("firstname", pauDto.getFirstname());
        request.addAttribute("amount", pauDto.getAmount());


        return "redirect:https://website";
    }

有没有办法实现这个目标,还是有其他办法。

1 个答案:

答案 0 :(得分:0)

一般来说,在这种情况下,在UI中构建一个表单,其中包含有效负载的隐藏输入字段(令牌,价格等 - 取决于您的支付网关),表单操作直接设置为支付网关的URL,然后只需提交表格。