В последние несколько дней я работаю над интеграцией PayPal и не смог найти правильный способ использования возвращенного в URL перенаправления payerId, необходимого для завершения платежа.
Это то, что яПосле того, как пользователь нажал кнопку оплаты на нашем веб-сайте, я вызываю указанный ниже метод в java с помощью вызова службы Angular
@RequestMapping(value = "/payment", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> makePayment() {
Map<String, Object> response = new HashMap<String, Object>();
String redirectUrl = "";
try {
APIContext apiContext = new APIContext(CLIENT_ID, CLIENT_SECRET, EXECUTION_MODE);
Payment crunchifyPayment = new Payment();
Amount amount = new Amount();
amount.setCurrency("USD");
//Total Subscription charge for Orion
amount.setTotal("1.00");
Transaction transaction = new Transaction();
transaction.setAmount(amount);
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();
redirectUrls.setCancelUrl(CANCEL_URL);
redirectUrls.setReturnUrl(RETURN_URL);
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")) {
redirectUrl = link.getHref();
break;
}
}
response.put("status", "success");
response.put("redirect_url", redirectUrl);
} catch (PayPalRESTException e) {
// Handle errors
} catch (Exception ex) {
// Handle errors
}
return response;
}
, и возвращаемым ответом будет URL, который я использую для перенаправления.
this.commonService.pay().subscribe((response: any) => {
if (response && response.status === 'success') {
window.location.href = response.redirect_url;
}
});
. Пользователь переходит на страницу подтверждения платежа PayPal, а в случае успешной оплаты он перенаправляется на URL-адрес возврата.
http://localhost:8080/orion-web/app/#/paypalPayment
наКакой PayPal добавит еще 3 аргумента, таких как PayerId, Token и PayId, и, наконец, возвращенный URL PayPal будет выглядеть примерно так:
http://localhost:8080/orion-web/app/#/paypalPayment&payerId='32432432'&toke='gfdgdgd'&payId='fdsfs';
Мой вопрос: как использовать этот URL?Должен ли я обрабатывать его на угловой стороне или на стороне java?Мне нужен PayerId, возвращенный PayPal для завершения моей транзакции.