使用REST API重定向到URL的问题

时间:2019-04-17 12:10:28

标签: angular spring spring-boot

我正在尝试使用rest api重定向到外部链接,但是未显示所需的链接,而我在控制台上得到了此信息: enter image description here 我正在使用Angle 4 / Spring Boot 2 **当我用邮递员发送请求时,它返回链接的代码html:

enter image description here

我的春季代码:

@GetMapping("/create")
static public RedirectView createPayment(HttpServletRequest req, HttpServletResponse res)
        throws Exception {

    TransactionRequest request = new TransactionRequest();

    request.setOrderId("1242").setCurrency("MAD").setAmount(1500);
    request.setShippingType(ShippingType.VIRTUAL);
    request.setPaymentMode(PaymentMode.SINGLE);
    request.setPaymentType(PaymentType.CREDIT_CARD); 
    request.setCtrlRedirectURL("http://capmission.ma");
    request.setCustomerIP("105.159.248.185");

    try {
        request.validate();
    } catch (BadRequestException e) {
        throw new Exception("Ooops, an error occurred validating the payment request: " + e.getMessage());
    }
    Connect2payClient c2p = new Connect2payClient("https://paiement.payzone.ma", "104747", "vbK7@pQ3G@W9X2k2");
    TransactionResponse response = null;
    try {
        response = c2p.prepareTransaction(request);
    } catch (Exception e) {
        throw new Exception("Ooops, an error occurred preparing the payment: " + e.getMessage());
    }
    if (response != null && ResultCode.SUCCESS.equals(response.getCode())) {
        response.setCustomerToken(response.getCustomerToken());
        String redirectURL = response.getCustomerRedirectURL();
        System.out.println(redirectURL);
        if (redirectURL != null) {
            return new RedirectView("https://www.google.com");
        }
    } else {
        System.out.println(response.getCode());
    }
    return null;
}

我的角度代码:

//service : 
    public testPaiementEnLigne2(){
        return 
         this.http.get(this.baseUrl+"payzone/create").map(data=>data.json());
    }

执行重定向的功能:

payer2(){
    this.paiementService.testPaiementEnLigne2().subscribe(
      data=>{
        console.log(data);
      },
      err=>{
        console.log(err);
    });
  } 

1 个答案:

答案 0 :(得分:1)

您期望使用JSON,但获得HTML:

//service : 
    public testPaiementEnLigne2(){
        return 
         this.http.get(this.baseUrl+"payzone/create").map(data=>data.text());
    }