Trong dự án Java/Spring hiện tại của tôi, tôi đang trong giai đoạn tích hợp với PayPal. Sau khi định cấu hình một lớp Java để xử lý quá trình thanh toán, hãy thực hiện theo các hướng dẫn từ here, tôi chạy ứng dụng của mình và thử thanh toán một đơn đặt hàng bằng paypal.PayPal SDK chuyển từ trang xem xét thanh toán sang profilepage
Tôi đang chuyển hướng một cách chính xác đến trang đăng nhập PayPal, và sau khi đăng nhập, trang xem lại thanh toán này:
nhưng sau đó sau khi tôi bấm vào "Tiếp tục", thay vì hoàn thiện việc thanh toán, Tôi được chuyển hướng đến trang hồ sơ của mình.
Đây là mã của tôi:
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;
Ai đó có thể cho tôi biết, những gì tôi thiếu ở đây?
ít nhất là ẩn các chi tiết cá nhân đó như điện thoại, id email, v.v. –
request.getContextPath() trở về là gì? Nếu đây là một url tương đối (không có tên miền), thì PayPal không biết nơi gửi khách hàng trở lại. –