PayPal SDK going from the page for viewing payments to the profile page

In my current Java / Spring project, I am in the integration phase with PayPal. After setting up the Java class to process the payment process, follow the instructions here , I launched the application and tried to verify the order using PayPal.

I am correctly redirected to the PayPal login page and after entering the payment viewing page:

enter image description here

but after I click Continue, instead of completing the payment, I’m redirected to my profile page.

enter image description here

Here is my code:

Paypal prop = this.paypalDao.get();
String clientId = prop.getClientID();
String clientSecret = prop.getClientSecret();
APIContext apiContext = new APIContext(clientId, clientSecret, "sandbox");

if(payerId != null) {
  if(guid != null) {
    Payment payment = new Payment();
    payment.setId(map.get(guid));

    PaymentExecution paymentExecution = new PaymentExecution();
    paymentExecution.setPayerId(payerId);
    payment.execute(apiContext, paymentExecution);

    String url = request.getContextPath();
    return url+"/orders";
  }
} else {
  List<Produto> lista_de_produtos = this.getListaDeProdutos(clienteId);

  Double total = 0.0;
  for(Produto produto : lista_de_produtos)
    total = total + produto.getPreco();
  DecimalFormat df = new DecimalFormat("0.00");
  String svalue = df.format(total).replace(',', '.');

  Details details = new Details();
  details.setSubtotal(svalue);

  Amount amount = new Amount();
  amount.setCurrency("BRL");
  amount.setTotal(svalue);
  amount.setDetails(details);

  Transaction transaction = new Transaction();
  transaction.setAmount(amount);
  transaction.setDescription(lista_de_produtos.toString());

  List<Transaction> transactions = new ArrayList<Transaction>();
  transactions.add(transaction);

  Payer payer = new Payer();
  payer.setPaymentMethod("paypal");

  Payment payment = new Payment();
  payment.setIntent("sale");
  payment.setPayer(payer);
  payment.setTransactions(transactions);

  RedirectUrls redirectUrls = new RedirectUrls();
  guid = UUID.randomUUID().toString();
  String url = request.getContextPath();
  redirectUrls.setCancelUrl( url+"/cart" );
  redirectUrls.setReturnUrl( url+"/paypal/checkout/"+clientId+"/?guid=" + guid );
  payment.setRedirectUrls(redirectUrls);

  Payment createdPayment = payment.create(apiContext);
  Iterator<Links> links = createdPayment.getLinks().iterator();
  while (links.hasNext()) {
    Links link = links.next();
    if (link.getRel().equalsIgnoreCase("approval_url")) {
      map.put("redirectURL", link.getHref());
      redirectURL = link.getHref();
    }
  }
  map.put(guid, createdPayment.getId());
  payment.setId(map.get(guid));
}

return redirectURL;

Can someone tell me what I'm missing here?

+6
source share
1 answer

Try printing this value:

System.out.println(url+"/paypal/checkout/"+clientId+"/?guid=" + guid);

https://www.yoursite.com/paypal/checkout/<number>/?guid=<number>, , ( https:// , ).

, :

  • .
  • PayPal.

Iff , , paypal , , , , . . @Emile.

+2

All Articles